> 文档中心 > 运算符、自增、自减、关系运算符、逻辑运算符、位运算、拓展赋值运算、条件运算

运算符、自增、自减、关系运算符、逻辑运算符、位运算、拓展赋值运算、条件运算


运算符

(operator)

  • 算数运算符: + - * / %(取余运算(模运算)) ++ --

  • 赋值运算符:=

  • 关系运算符: > = <= == != instanceof

  • 逻辑运算符: && || !

  • 位运算符: & | ^ ~ >> <>> (了解!!!)

  • 条件运算符?:

  • 扩展赋值运算符: += -= *= /=

  • 运算符的优先级 () ++/-- 加减乘除 逻辑运算 赋值运算

算数运算符&赋值运算符

普通算数运算

 package operator; ​ public class Demo01 {     public static void main(String[] args) {         int a = 10;         int b = 20;         int c = 30;         int d = 25;         int e = 10; ​         System.out.println(a+b);         System.out.println(a-b);         System.out.println(a*b);         System.out.println(a/(double)b);  //强制转换成double类型     } ​ } ​

不同类型的算数运算

 package operator; ​ public class Demo02 {     public static void main(String[] args) {         long a = 1231231232123123L;         int b =123;         short c =10;         byte d = 8; ​         System.out.println(a+b+c+d);//long 类型         System.out.println(b+c+d);//  没有long类型的自动为int类型         System.out.println((double)(c+d));     } }

自增、自减

 package operator; ​ public class Demo04 {     public static void main(String[] args) {         // ++    --    自增,自减  一元运算符         int a = 3;         int b = a++;  // a++   a = a + 1     执行这行代码后,先给b赋值,再自增         int c = ++a;  // ++a   a = a + 1     执行这行代码前,先自增,再给a + 1; ​         System.out.println(a);         System.out.println(a);         System.out.println(b);         System.out.println(b);         System.out.println(c);         System.out.println(c); ​         //幂运算 2^3   2*2*2 = 8         double pow = Math.pow(2, 3);         System.out.println(pow);  //很多运算使用工具来做,Math类 数学工具类     } }

关系运算符

关系运算符返回结果:正确(true) 错误(false) 布尔值

经常跟if共同使用

 package operator; ​ public class Demo03 {     public static void main(String[] args) { ​         //关系运算符返回的结果:正确(true)   错误(false)    布尔值         int a = 10;         int b = 20;         int c = 21; ​         System.out.println(c%a);  //  取余 模运算 ​         System.out.println(a>b);         System.out.println(a<b);         System.out.println(a==b);         System.out.println(a!=b);     } ​

逻辑运算符

与 或 非

 package operator; //逻辑运算符 public class Demo05 {     public static void main(String[] args) {         //与(and) 或(or)   非(取反)         boolean a = true;         boolean b = false; ​         System.out.println("a && b:"+(a&&b));        //两个都为真才为真         System.out.println("a || b:"+ (a||b));       //一个为真就为真,两个都为假才为假。         System.out.println("!(a && b):"+!(a && b));  //真假结果取反 ​         //短路运算         int c = 5;         boolean d = (c<4)&&(c++<4);  //与运算中,如果前一个条件错了,会直接报错,不会继续执行下面的语句         System.out.println(d);         System.out.println(c); ​         // 如果 c++ 放到前面,就会正常先执行 c++         boolean e = (c++<4)&&(c<4);         System.out.println(e);         System.out.println(c);     } }

位运算

位运算符 运算用法
&(与) 只有都为1才输出1
|(或) 只要有1就输出1
~(非) 1、0都取反
^(异或) 相同为1,不同为0
<<(左移) 左移几位,乘几个2
>>(右移) 右移几位,除几个2
 package operator; ​ public class Demo06 {     public static void main(String[] args) {         /*         A = 0011 1100         B = 0000 1101         ------------------------------------------         A&B 0000 1100 与         A|B 0011 1101 或         A^B 0011 0001 异或(如果相同就为0 ,不相同就为1)         ~B  1111 0010 非 ​         2*8 = 16    2*2*2*2         <>    右移  /2  (右移几,除几个2)         效率高,直接跟二进制打交道 ​         0000 0000    0         0000 0001    1         0000 0010    2         0000 0011    3         0000 0100    4         0000 1000    8         0001 0000    16          */         int A = 0b0000_0011;         int B = 0b0011_0011;         System.out.println(A&B);               // 在这里我想输出结果为二进制,没有办法换 ​ ​         System.out.println(3<>2);  //3*2*2    0    //  在这里我想输出为字符型,没有办法换     } }

扩展赋值运算

a += b 相当于 a = a + b简写

注意“+”什么时候用作连接符 , String类型在前 “+ ” 用作连接符

 package operator; ​ public class Demo07 {     public static void main(String[] args) {         int a = 10;         int b = 20; ​         a += b;  //a = a + b         a *= b;         a /= b;         a -= b;         System.out.println(a);         System.out.println(a/(double)b); ​         //连接符         System.out.println(a+b);         System.out.println(""+a+b);  //String 类型在前面 , “+”表示连接符         System.out.println(a+b+"");  //String 类型在后面 , “+”继续先运算     } }

条件运算符

基本用法:

x ? y : z 如果x==true , 则结果为y , 否则结果为 z

 package operator; ​ // 三元运算符 public class Demo08 {     public static void main(String[] args) { ​ ​         // x ? y : z         // 如果x==true , 则结果为y , 否则结果为 z ​         int score = 50;         String type = score < 60 ? "不及格" : "及格";         /*         String type;         if (score < 60) type = "不及格";         else type = "及格";          */         System.out.println(type); ​     } }