00007_运算符

1、算术运算符

  (1)运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数 ;

  (2)算术运算符最常见的操作就是将操作数参与数学计算;

    

  (3)使用算术运算符的注意事项:

    ①加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串;

    ②除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除;

    ③“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同;

    ④整数做被除数,0不能做除数,否则报错;

    ⑤代码演示:

 1  /*
 2  * 算术运算符
 3  */
 4 public class OperatorDemo1 {
 5     public static void main(String[] args) {
 6         /*
 7          * 常量使用算数运算符
 8          */
 9         System.out.println(10+20);
10         
11         /*
12          * 变量使用算数运算符
13          */
14         int x = 10;
15         int y = 20;
16         //"+"作为加法运算使用
17         int z = x + y; 
18         //"+"作为连接字符串使用
19         System.out.println("x="+x);
20         System.out.println("y="+y);
21         System.out.println("z="+z);
22     }
23 }

  运行结果:

  

2、算术运算符++、--的使用

  (1)++运算符,会在原有值的基础上自增1;

  (2)--运算符,会在原有值的基础上自减1;

  (3)++,--运算符单独使用,不参与运算操作时,运算符前后位置导致的运算结果是一致的;

  (4)++,--运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1;

1 int a = 3;
2 int b;
3 b = a++ + 10;
4 System.out.println(a);//4
5 System.out.println(b);//13

  (5)++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。

1 int a = 3;
2 int b;
3 b = ++a + 10;
4 System.out.println(a);//4
5 System.out.println(b);//14

3、赋值运算符

  (1)赋值运算符就是为变量赋值的符号:

  

  (2)诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型;

  (3)代码演示:

 1  /*
 2  * 赋值运算符
 3  * +=, -=, *=, /=, %= : 
 4  * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的
 5  * 注意:赋值运算符左边必须是变量
 6  */
 7 public class OperatorDemo2 {
 8     public static void main(String[] args) {
 9         byte x = 10;
10         x += 20;// 相当于 x = (byte)(x+20);
11         System.out.println(x);
12     }
13 }

  运行结果:

  

4、比较运算符

  (1)比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false ;

  

  (2)赋值运算符的 = 符号与比较运算符的 == 符号是有区别的:

    ①赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;

    ②比较运算符的 == 符号,是用来判断 == 符号左右变量的值是否相等的。

1 int a = 3;
2 int b = 4;
3 System.out.println( a=b );//4
4 System.out.println( a==b );//false

5、逻辑运算符

  (1)逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false;

  

  (2)逻辑运算符通常连接两个其他表达式计算后的布尔值结果;

  (3)当使用短路与或者短路或时,只要能判断出结果则后边的部分就不再判断;

1 boolean b = 100>10;
2 boolean b2 = false;
3 System.out.println(b&&b2); // 打印结果为 false
4 System.out.println(b||b2); //打印结果为 true
5 System.out.println(!b2); //打印结果为 true
6 System.out.println(b && 100>10); //打印结果为 true

  (4)短路与&&:参与运算的两边数据,有false,则运算结果为false;

  (5)短路或||:参与运算的两边数据,有true,则运算结果为true;

  (6)逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

6、三元运算符

  (1) 格式: (条件表达式)?表达式1:表达式2;

  (2)三元运算符运算规则

    ①先判断条件表达式的值;

    ②若为true,运算结果为表达式1;

    ③若为false,运算结果为表达式2 。 

 1 方式一:
 2     System.out.println( 3>2 ? “正确” : “错误” ); 
 3 // 三元运算符运算后的结果为true,运算结果为表达式1的值“正确”,然后将结果“正确”,在控制台输出打印
 4 
 5 方式二:
 6     int a = 3;
 7     int b = 4;
 8     String result = (a==b) ? “相等” : “不相等”;  
 9 //三元运算符运算后的结果为false,运算结果为表达式2的值“不相等”,然后将结果赋值给了变量result
10 
11 方式三:
12     int n = (3>2 && 4>6) ? 100 : 200;
13     //三元运算符运算后的结果为false,运算结果为表达式2的值200,然后将结果200赋值给了变量n

7、运算符优先级

  (1)下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算);

  

  (2)代码演示:

 1 int a = 5;
 2 int b = 3;
 3 int c = 1;
 4 int n2 = (a>b && b>c) ? (c++) : (++c);
 5 /*     1.小括号优先级高,我们先运算第一组小括号中的代码
 6       1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”
 7           先执行 a>b,得到结果true;
 8               再执行 b>c,得到结果true;
 9           最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true
10       2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++
11           先将变量c的原有值赋值给变量n2,即n2值为1;
12           再将变量c的值自增1,更新为2。
13 */
14     

 

posted @ 2018-01-01 14:38  gzdlh  阅读(372)  评论(0编辑  收藏  举报