JAVA中的一些运算符

目录:

一、算术运算符:

二、赋值运算符

三、关系运算符

四、逻辑运算符

五、位运算符

六、三目运算符


一、算术运算符:

+:正号;加法运算;字符串连接
-:负号;减法运算
*:乘法
/:取商
%:取余
++:前加加,++放变量前;参与运算时,先加一,后运算;
后加加:++放变量后;参与运算时,先运算,后加一;
–:前减减:–放变量前
后减减:–放变量后

   //字符串拼接示例
  int c = 30;
  String s2 = "=";
  int d = 10;
  int f = 20;
  System.out.println(c+s2+d+"+"+f); //30=10+20

  //++、--示例
  int a=10;
  int b=10;
  int c=10;
  a=b++;
  System.out.println(a);//10
  System.out.println(b);//11
  System.out.println(c);//10
  
  c=--a;
  System.out.println(a);//9
  System.out.println(b);//11
  System.out.println(c);//9
  
  b=++a;
  System.out.println(a);//10
  System.out.println(b);//10
  System.out.println(c);//9
  
  a=c--;
  System.out.println(a);//9
  System.out.println(b);//10
  System.out.println(c);//8

二、赋值运算符

+=
-=
*=
%=
/=
//容易出错的点:
short s=1;
s=s+1;//错误,s+1是int型,而s是short型,会引起精度丢失。
s+=1;//+=、 -=、 *=、 %=、 /=里面包含了强制类型转换,即相当于
s=(short)(s+1);

三、关系运算符:结果都是Boolean类型的

“==”
“!=”
“<”
“>”
“<=”
“>=”
instanceof:检查是否是类的对象;“Hello”instanceof String结果为true,只能用于引用数据类型。

四、逻辑运算符:一般用于连接布尔类型的值

&:不是短路运算符,不管前面表达式的结果是什么,后面的表达式仍然进行计算;
|:不是短路运算符,不管前面表达式的结果是什么,后面的表达式仍然进行计算;
!:
^(异或):相同为false,不同为true
&&:是短路运算符,如果前面表达式的结果是false,后面的表达式就不用再进行计算了;
||:也是短路运算符,如果前面表达式的结果是true,后面的表达式就不用再进行计算了;
运算符优先级:& 大于 | 大于 ^ 即 与 >或 > 异或

//短路运算
  int x = 3;
  int y = 4;
  System.out.println((x++ > 3)&(y++ > 4));//false,x=3先进行>运算,再x++
  System.out.println(x);//4
  System.out.println(y);//5
  
  System.out.println((x++ > 3)&&(y++ > 4));//true,y++短路,执行不到·
  System.out.println(x);//5
  System.out.println(y);//6
  
  System.out.println((++x > 3)|(++y > 4));//true
  System.out.println(x);//6
  System.out.println(y);//7
  
  System.out.println((++x > 3)||(++y > 4));//true,++y短路,执行不到·
  System.out.println(x);//7
  System.out.println(y);//7

在这里插入图片描述

五、位运算符:直接对二进制进行计算

“<<”:左移;3<<2=12(3=00000011<<2=00001100=12=322)相当于乘2的几次方
“>>”:右移;3>>1=1 (3=00000011>>1=00000001=1 =3/2)相当于除2的几次方
“>>>”:无符号右移,空位补0;
“<<”:空位补0,最高位丢弃;
“>>”:最高位是0,空位补0;最高位是1,空位补1

六、三目运算符

格式:(关系表达式)?表达式1:表达式2;(表达式1和表达式2最终结果是一个明确的值)
意思:关系表达式的值为true,结果是表达式1,否则为表达式2。

//三目运算示例
Scanner student = new Scanner(System.in);
  System.out.println("请输入成绩");
  int score = student.nextInt();
  System.out.println(score>=90?"A":score>=80?"B":score>=70?"C":score>=60?"D":"E");
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页