zoukankan      html  css  js  c++  java
  • 从零开始学Java 第5章 运算符

    第5章  运算符
    前一章讲了Java的数据类型,通过对这些数据进行有效的计算来完成程序,如何准确高效的进行运算,就需要了解Java的运算符。Java提供了相当丰富的运算符系统,主要分为以下四类:算术运算符、位运算符、关系运算符、逻辑运算符。这些运算符之间有优先级的关系,通过括号的组合而成的表达式可以完成复杂的计算。
    5.1  算术运算符
    算术运算符一般在数学表达式中使用,使用方法和代数中的使用方法相同,表5.1列出了各种算术运算符。
    5.1.1  基本算术运算符
    基本算术运算符包括加、减、乘、除,可以对所有数字类型进行操作。注意一点,如果整数进行除法运算,得到的结果也是整数,小数部分会被抛弃掉。
    5.1.2  模运算符
    模运算符“%”是求两个整数相除的余数,它可以应用于整数类型。如果在浮点类型上使用该运算,编译器并不会报错,但是产生的结果是不准确的,这根底层的数据表示有关,在此不再详述。
    5.1.3  算术赋值运算符
    在程序编写中,经常使用到对该变量加上一个值,例如让int型变量i加5,用程序语言表达就是:
    i=i+5;
    在Java中有一种简单的表达方式,如下所示:
    i+=5;
    该语句是用运算符+=将加法运算和赋值运算合为一步完成,因此这里把该运算符称为算术赋值运算符。同理还可以有以下运算符的使用:
    i-=5;
    i/=5;
    i%=5
    i*=5;
    它们分别相当于:
    i=i-5;
    i=i/5;
    i=i%5;
    i=i*5;

    5.1.4  自增自减运算符
    在程序中对数字变量最常用的操作是加1或者减1,在Java中有专门的操作符来表示这个运算,++和--运算符。下面三条语句的效果是相同的:
    i=i+1;
    i+=1;
    i++;
    同样对于自减运算符也是如此。
    自加自减运算符可以用作前缀也可以用作后缀,这两种情况下所起的作用是不同的。前缀表达式中,编译器会首先对该操作数进行加1或减1,然后将其用于表达式中。后缀表达式中,会先将操作数的值进行计算,然后对操作数进行加1或减1。
    5.2  位运算符
    位运算符用来对二进制位进行操作,Java中定义的为运算符适用于整数类型(long、int、short、char、byte),主要的位运算符如表5.2所示:
     5.2.1  按位取反运算
    在计算机中所有的整数类型都用二进制数来表示。例如11的二进制表达式就是00001011,其中每个位置都表示2的幂,右边第一位表示20,第二位表示21,以此类推。所以11的二进制表示就是20 +21 +23=11。
    Java中整数类型都是有符号类型,可以表示正数,也可以表示负数。在Java中负数的是用补码来表示的。
    5.2.2  位逻辑运算符
    位运算符有&、|、^、~。如表5.3表示了位逻辑运算符的运算结果。
    5.2.3  位移运算
    位移运算是数据在二进制位上的操作。一共有三种形式的位移操作,分别是左移运算、右移运算以及无符号位移。下面依次讲解这三种形式的位移操作。
    1.左移运算(<<)
    2.右移运算(>>)
    3.无符号右移(>>>)

    5.3  关系运算符
    关系运算符用来比较两个数,确定两个操作数之间的关系。关系运算的返回值是一个boolean类型,仅有true和false两种情况。关系运算符一般用在if语句和循环语句的判断中。
    在Java中,任何类型包括整型、浮点型、字符型和布尔型都可以进行关系运算。在Java中用“==”运算符比较两个数是否相等,用运算符“!=”测试两个数是否不等。
    5.4  逻辑运算符
    在Java中提供一些简单的运算符,可以把简单的条件合并在一起,从而构成复杂的条件。这些符号包括“&&”(短路与运算)、“||”(短路或运算)以及“!”(非运算)。通过这些运算得到的值是boolean类型(true或false)。如表5.5是所有的逻辑运算符的列表:
    5.5  三元运算符
    Java中有一个特殊的三元运算符,它支持条件表达式,当需要进行条件判断是可用它来替代if-else语句。它的语法稍微一点麻烦,但是它能非常高效的完成功能,让代码看起来简洁,优雅。它的一般形式是:
    expression? statement : statement2
    其中,expression是一个可以计算出boolean值得表达式。如果expression的值为真,则执行statement1的语句,否则执行statement2的语句。
    5.6  运算符优先级
    在一个表达式中可能含有多个运算符,它们之间是有优先级关系的,这样才能有效的把它们组织到一起进行复杂的运算,如表5.6是Java中运算符的优先级。
    5.7  小结
    前一章已经介绍过Java中的各种数据类型,在这一章中,主要学习了各种表达式的使用。在实际运用中这些表达式是十分有用的。通过表达式将各种数据合理有效的结合在一起,是程序高效、简洁的秘诀所在。希望读者认真阅读这两章,为以后的学习打下良好的基础。

  • 相关阅读:
    忏悔书(IT攻城狮)
    【博文汇总】彩色图像分割 Menu
    【Android】Android 4.2源码下载(ubuntu 12.10)
    【My Project】织物疵点检测机器视觉系统 软件测试平台
    【NFC】Android NFC API Reference中英文
    【分享】RSS订阅技巧及工具和实用RSS链接分享
    【流媒體】live555—VS2010/VS2013 下live555编译、使用及测试
    vc++ win32项目属性介绍(二、c/c++)
    c风格回调函数 vs c++风格虚基类,关于接口定义和调用的对比
    关于移动技术的我的看法(二)
  • 原文地址:https://www.cnblogs.com/yoogoo/p/2467256.html
Copyright © 2011-2022 走看看