运算符

  1. 算术运算符 + - * / % ++ --

int num1 = 12;
int num2 = 5;
int result = num1/ num2;//2
double result1 = num1 / num2;//2.0
double result2 = (double)num1 /num2;//2.4
double result3 = num1 / (nmu2 + 0.0);//2.4

% :结果的符号与被模数一致

前++ 先+1,后运算 不会改变原来的数据类型

后++ 先运算,后+1

short s1 = 10;
s1 = s1 +1;//编译不通过,short与int运算结果为int
s1 ++;//自增一,不会改变原来的数据类型
byte b =127;
b++;//-128
  1. 赋值运算符 = ,/= ,*= ,+=,-= 不改变数据类型

short s = 10;
s1 += 2;//12,不会改变数据类型
int i = 1;
i *= 0.1;//编译通过,*=不改变数据类型,还为int型 ,0
int n = 10;
n += (n++)+(++n);//32 n=n+(n++)+(++n)
  1. 比较运算符(关系运算符)== , != ,>= , <= , > , < , instanceof (是否为类的对象)

运算结果都是boolean型

int i = 10;
int j = 20;
System.out.println( i == j );//false
System.out.println( i = j ); //20
  1. 逻辑运算符 & (逻辑与),|, !,&&(短路与),||,^(逻辑异或)

用来运算boolean类型数据

 

 

& 与 && 运算结果相同

        boolean x = true;
      boolean y = false;
       short z = 42;
       if (y == true) ;
       if ((z++ == 42) && (y = true)) z++;
       if ((x = false) || (++z == 45)) z++;
       System.out.println("z = " + z); //46
//boolean a = false;
// if (a = true) {//先赋值,再进行if判断 a=true;if(a)
//System.out.println("a = true" );
//}
  1. 位运算符 << , >> , >>> ,& , |,^ , ~ (没有定义<<<)

    位运算符操作的都是整形的数据, 左移几位就乘以2几次方

 

 

//交换两个变量的值
//方法一:中间变量
//方法二:
int a = 10;
int b = 20;
a = a + b;//a = 30,b = 20
b = a - b;//a = 30,b = 10
a = a - b;//a = 20,b = 10
//方法三:位运算符
a = a ^ b;
b = a ^ b;
a = a ^ b;//a=(a^b)^b

  1. 三元运算符 (条件表达式) ?表达式一:表达式二

运算符的优先级

 

 只有 单目,三元,赋值运算符 是从右到左运算的

posted @ 2021-12-23 16:18  清水煮岁月  阅读(13)  评论(0编辑  收藏  举报