运算符(六)

一、概念
  对常量和变量进行操作的符号
二、分类

1、算术运算符:+,-,*,/,%,++,--

(1)、注意事项

   A、算数运算符:整数相处只能得到整数,如果想得到小数,必须把数据变成浮点数类型,
   B、/获取的是触发操作的商,%获取的是触发操作的余数

(2)、++,--运算符的使用

  A、单独使用:放在操作数的前面和后面效果一样(这种用法是比较常见的)
        int x=3;
        int y=4;
        ++x;
        --y;
        System.out.println("x:"+x+",y:"+y);

  B、参与运算使用:放在操作数前面,先自增或者自减,然后参与运算,放在后面,先参与运算,在自增或者自减
      int a = 3;
      int b = 4;
		
      //int c = a++;
      //int d = b--;	
      int c = ++a;
      int d = --b;	
      System.out.println("a:"+a); //4, 4
      System.out.println("b:"+b); //3, 3
      System.out.println("c:"+c); //3, 4
      System.out.println("d:"+d); //4, 3

  C、作用:就是对变量进行自增1或者自减1

(3)、++,--练习
  第一题:
      int a = 10;
      int b = 10;
      int c = 10;

      a = b++;
      c = --a;
      b = ++a;
      a = c--;
      请分别计算出a,b,c的值(9,10,8)

第二题:
      int x = 4;
      int y = (x++)+(++x)+(x*10);
      请分别计算出x,y的值(4+6+60)

2、赋值运算符:=,+=,-=,/=,*=,%=

        short s=1;s = s+1; 
	short s=1;s+=1;
	上面两个代码有没有问题,如果有,那里有问题。
        扩展的赋值运算符其实隐含了一个强制类型转换。s += 1;不是等价于 s = s + 1;而是等价于 s = (s的数据类型)(s + 1);

3、比较运算符:==,!=,>,>=,<,<=

   A、特点:无论操作是简单还是复杂,结果是boolean类型
   B、注意事项:"=="不能写成"="
        int x = 3;
	int y = 4;
	int z = 3;

	System.out.println(x == y);
	System.out.println(x != y);
	System.out.println(x > y);
	System.out.println(x >= y);
	System.out.println(x < y);
	System.out.println(x <= y);

4、逻辑运算符:&,|,^,!,&&,||

  A、特点:一般用于连接boolean类型的表达式或者值
  B、结论:
        &:逻辑与:有false则false
        |:逻辑或:有true则true
        ^:逻辑异或:相同为false,不同为true
        !:逻辑非:非false则true,非true则false
  C、&&和&的区别
        a、最终的结果是一样
        b、&&具有短路效果,左变是false,右边不执行

5、三目运算符

  A、格式:比较表达式?表达式1:表达式2
  B、比较表达式:结果是一个Boolean类型
  C、执行流程:
        根据表达式的计算返回一个true或者false
        如果是true,就把表达式1作为结果
        如果是false,就把表达式2作为结果

        int x = 100;
	int y = 200;		
	int z = ((x > y)? x: y);

  D、练习
        //获取两个整数中的最大值
	int x = 100;
	int y = 200;
	
	int max = (x > y? x: y);
	System.out.println("max:"+max);
	System.out.println("--------");
	
	//获取三个整数中的最大值
	int a = 10;
	int b = 30;
	int c = 20;
            int temp = ((a > b)? a: b);
	int max1 = (temp > c? temp: c);
	System.out.println("max1:"+max1);

        //比较两个整数是否相同
	int m = 100;
	int n = 200;
	
	//boolean flag = (m == n)? true: false;
	boolean flag = (m == n);
	System.out.println(flag);
posted @ 2020-12-14 07:16  我是一个大土豆  阅读(49)  评论(0编辑  收藏  举报