运算符

Java语言支持如下运算符:

算术运算符

+ (加),- (减),* (乘),/ (除),%(取余,模运算)

public class Demo01 {
   public static void main(String[] args) {
       // 二元运算符
       //ctrl + D :复制当前行到下一行
       int a = 10;
       int b = 20;
       
       System.out.println(a+b);
       System.out.println(a-b);
       System.out.println(a*b);
       System.out.println(a/(double)b); //强制转换

  }
}

 

public class Demo02 {
   public static void main(String[] args) {
       long a = 123456789L;
       int b = 21;
       short c = 10;
       byte d = 8;
       int e = 10;
       //运算符和类转换应用
       System.out.println(a+b+c+d);  //自动转换为long类型 低~高
       System.out.println(b+c+d);  //自动转换为int类型     低~高
       System.out.println(c+d);  //自动转换为short类型       低~高
       System.out.println((double) c+d);  //可以执行强制转换成自己想要的类型

       System.out.println(b%e);  //取余、模运算 b / e = 21 / 10 = 2.1 ,余1
  }
}

 

 

++ (自增),-- (自减)

public class Demo04 {
   public static void main(String[] args) {
       // ++ -- 自增 自减 ,一元运算符
       // a++ 先给a赋值,再自增 , ++a 先自增,再给a赋值
       //同理可得, a-- 先给a赋值,再自减 , --a 先自减,再给a赋值

       int a = 3;
       int b = a++; // 执行完这行代码后,先给b赋值,再自增
       // a = a + 1;
       System.out.println(a);

       int c = ++a;   //执行完这行代码后,先自增,再给c赋值

       System.out.println(a);
       System.out.println(b);
       System.out.println(c);

       //幂运算   很多运算,我们会使用一些工具类来进行运算
      double pw = Math.pow(3,2); //3 * 3 ,Math类:提供了很多科学工程计算的方法,和常数以及特殊的运算方法
       System.out.println(pw);


  }
}

 

 

赋值运算符

=

public class Demo {
   public static void main(String[] args) {
       //赋值运算
       int a =10; // 把10赋给a
       int b =20; // 把20赋给b
       
       System.out.println(a);
       System.out.println(b);
       
       //输出得到赋给a、b的值
       
  }
}

 

 

关系运算符

> (大于),< (小于),>= (大于或等于),<= (小于或等于),== (等于),!=instanceof (不等于)

public class Demo03 {
   public static void main(String[] args) {
       //关系运算符返回的结果: 正确,错误   通过布尔值来表示: true false

       int a = 10;
       int b = 20;

       System.out.println(a>b);
       //输出结果 false   错误

       System.out.println(a<b);
       //输出结果 true     正确

       System.out.println(a>=b);
       //输出结果 false   错误
       
       System.out.println(a<=b);
       //输出结果 true     正确

       System.out.println(a==b);
       //输出结果 false   错误

       System.out.println(a!=b);
       //输出结果 true     正确
  }
}

 

 

逻辑运算符

&& (逻辑与算),|| (逻辑或算),! (逻辑非算)

//逻辑运算符
public class Demo05 {
   public static void main(String[] args) {
       // &&:与(and:我和你,两个都要) ||:或(or:我或者你) !:非(非你既我,取反)
       boolean a = true;
       boolean b = false;

       System.out.println("a && b:"+(a && b)); // 逻辑与运算:两个变量都为真,结果才为true
       System.out.println("a || b:"+(a || b)); //逻辑或运算:两个变量有一个为真,则结果才为true
       System.out.println("!(a && b):"+(a && b)); //逻辑非运算:如果是真,则变为假,如果是假则变为真

       //短路运算
       int c = 5;
       boolean d = (c<4)&&(c++<4);
       System.out.println(d);
       System.out.println(c);
       // 通过短路运算得到,逻辑与运算在运算中得到一个变量为假,则另一个变量不会再去运算
  }
}

 

 

位运算符

& (位与算),| (位或算),^ (位异或算),~ (位反算),>> (左移:乘二),<< (右移:除二),>>> (右移, 无论正负,都在最高位插入0)

  /*
   位运算
   &: 位与算   |:位或算   ^:位或算   ~:位反算
   <<:左移:乘二   >>:右移:除二
   */

public class Demo06 {
   public static void main(String[] args) {
       /*
       A = 0011 1100
       B = 0000 1101

       A&B = 0000 1100   位与算:同位数都为1则为1,否则都为0
       A|B = 0011 1101   位或算:同位数有1则为1;否则都为0
       A^B = 0011 0001   位异或算:同位数相同则为0,否则都为1
       ~A = 1100 0011   位反算:同位数为1则为0,同位数为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 0101   5
       0000 0110   6
       0000 0111   7
       0000 1000   8
       0001 0000   16

        */

       System.out.println(2<<3);
       //输出结果 8
       System.out.println(16>>2);
       //输出结果 4
  }
}

 

 

条件运算符

? ,:

//三元运算
public class Demo08 {
   public static void main(String[] args) {
       //x ? y : z
       //如果x==true,则结果为 y,否则结果为z

       //定义一个变量、赋值
       int score = 80;

       //如果 typa为真则输出:"不及格",为假则输出:"及格"
       String typa = score <60 ?"不及格":"及格";  //相似方法 if
       //必须掌握 开发中十分常见,可以让代码更加精简


       System.out.println(typa);
       //输出结果:typa为假,不及格

       //如果ta为真则输出:及格,为假则输出:不及格
       String ta =score >=60?"及格":"不及格";

       System.out.println(ta);
       //输出结果:ta为真,及格


  }
}

 

 

扩展赋值运算符

+=,-=,*=,/=


   //扩展赋值运算

public class Demo07 {
   public static void main(String[] args) {
       int a =10;
       int b =20;

       a+=b; //a = a + b
       a-=b; //a = a - b

       System.out.println(a);

       a*=b; // a = a * b
       a/=b; // a = a / b
       System.out.println((double)a);

       //字符串连接符 + ,只要有一方出现 String 类型,它就会把另一个操作数或其他操作数转换成 String 类型
       System.out.println(""+a+b); //字符串在前面,则进行拼接 ""为 String 类型
       System.out.println(a+b+""); //字符串在后面,则进行运算
  }
}

 

字符串连接符
public class Demo {
   public static void main(String[] args) {
       int a =10;
       int b =20;
       
        //字符串连接符 + ,只要有一方出现 String 类型,它就会把另一个操作数或其他操作数转换成 String 类型
       System.out.println(""+a+b); //字符串在前面,则进行拼接 ""为 String 类型
       System.out.println(a+b+""); //字符串在后面,则进行运算
  }
}

 

 

posted @ 2022-01-07 20:54  小瑭  阅读(40)  评论(0编辑  收藏  举报