[Java Basic] 04 运算符和表达式

运算符和表达式

运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值运算和逻辑比较方面.Java中提供了丰富的运算符,如赋值运算符、算术运算符、比较运算符等.

 

  • 赋值运算符

赋值运算符以符号"="表示,它是一个二元运算符(对两个操作数做出来),其功能是将右方操作数所含的值赋给左方的操作数.

    1. int a = 100;

该表达式是将100赋值给变量a,左方的操作数必须是一个变量,而右边的操作数则可以使任何表达式,包括变量、常量、有效的表达式.

由于赋值运算符"="处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的"="运算符,会从最右方的"="开始处理.

 

  • 算术运算符

Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(求余),他们都是二元运算符.

运算符 说明
+
-
*
/
% 取余数

其中"+"和"-"运算符还可以作为数据的正负符号.

在进行除法运算时,0不能做除数.否则系统会抛出ArithmeticException异常.

    1. public class Arith {
          public static void main(String[] args) {
              float number1 = 45.56f;
              int   number2 = 152;
              System.out.println("和为: "+(number1+number2));
              System.out.println("差为: "+(number1-number2));
              System.out.println("积为: "+number1 * number2);
              System.out.println("商为: "+number1 / number2);
          }
      }

 

  • 自增和自减运算符

自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后.操作元必须是一个整型或浮点型变量.自增、自减运算符的作用是使变量的值增1或减1.放在操作元前面的的自增、自减运算符,会将变量的值加1(减1),然后在使该变量参与表达式的运算.放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1).

    1. ++a(--1)  //表示在使用变量a之前先使a的值加(减)1
      a++(a--)  //表示在使用变量a之后再使a的值加(减)1

       

  • 比较运算符

比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较.比较运算符的运算结果是boolean型.当运算符对应的关系成立时,运算结果为true,否则为false.所有的比较运算符通常作为判断的依据用在条件语句中.

运算符 作用 操作数据
> 比较左方是否大于右方 整型、浮点型、字符型
< 比较左方是否小于右方 整型、浮点型、字符型
== 比较左方是否等于右方 基本数据类型、引用型
>= 比较左方是否大于等于右方 整型、浮点型、字符型
<= 比较左方是否小于等于右方 整型、浮点型、字符型
!= 比较左方是否不等于右方 基本数据类型、引用型
    1. int max = 10; 
      int num = 9; 
      boolean b1 = max > 15; 
      boolean b2 = num%2  ==  1; 
      System.out.println(b1);  // 结果为false 
      System.out.println(b2);  // 结果为true 

       

  • 逻辑运算符

返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式.这是通过逻辑运算符来实现的.逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非).逻辑运算符的操作员必须是boolean型数据.在逻辑运算符中除了"!"是一元运算符外,其他都是二元运算符.

运算符 含义 用法 结合方向
&&、& 逻辑与 op1&&op2 左到右
|| 逻辑或 op1|op2 左到右
! 逻辑非 !op 右到左

结果为boolean型的变量或表达式可以通过逻辑运算符组合为逻辑表达式.

op1 op2 op1&&op2 op1||op2 !op1
true true true true false
true false false true false
false false false false true
false true false true true

 

逻辑运算符"&&"与"&"的区别 

Java逻辑运算中的&&和||有短路的特性,当第一个关系表达式就可以判断出整个表达式的结果时,就不会再去判断后面的第二个表达式.

1.对于"&&",当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数是什么最后的结果一定是false;

2.对于"||",当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true.

 

  • 字符连接运算


"+"除了可以进行算术运算以外,还可以实现字符串的连接,同时可以实现字符串与其他数据类型的"相连".

当 + 号作用于两个数字类型变量时,是在进行算术运算.

当 + 号两边的变量有一个是字符串类型,即""括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型.

    1. int a = 100;
      String msg = "a=" + a;
      System.out.println(msg);    //a=100,字符串拼接
      msg = "" + 100 + 200;
      System.out.println(msg);   //结果为: 100200,””+100,为字符串100再拼上200为100200
      msg = 100 + 200 + "";
      System.out.println(msg);   //结果为:300,100+200为算术运算结果为300,再加上””为300

       

  • 三元运算符

使用格式: 条件式?值1:值2

三元运算符的运算规则为: 若条件式的值为true,则整个表达式取值1,否则取值2.

    1.     int a = 100, b = 200;
          int flag = a > b ? 1 : -1;   //因为a>b为false,所以整个表达式的值为-1,将其赋给flag,即:flag的值为-1.

       

  • 运算符优先级

Java中的表达式就是使用运算符连接起来的符合Java规则的式子.运算符的优先级决定了表达式中运算的先后顺序.

通常优先级由高到低的顺序是:

  1.自增和自减运算

  2.算数运算

  3.比较运算

  4.逻辑运算

  5.赋值运算

在编写程序时尽量使用括弧"()"运算符来限定运算次序,以免产生错误的运算顺序. 

posted @ 2014-08-25 22:39  cnCoder  阅读(113)  评论(0)    收藏  举报