Java03-运算符

NiuMT 2020-06-03 20:58:30
Java

算数运算符

int num1=12;
int num2=5;
double num3=num1/num2; //2
double num3=(double)num1/num2; //2.4

++  -- += /= *=符号不会改变本身数据类型。
short s1=10;
s1++;

逻辑运算符

image-20200928225022814

// && 若第一个值为false,第二个值不会判断(第二个值被短路),整体表达式判定为false
// 若第一个值为true,第二个值会继续判断
// & 任何情况都会判断两个值

// | || 同理

boolean b1=false;
int num1=10;
if (b1 & (num1++ > 0)){
    System.out.println("a");
}else{
    System.out.println("b");
}
System.out.println(num1); // num1=11


boolean b2=false;
int num2=10;
if (b2 && (num2++ > 0)){
    System.out.println("c");
}else{
    System.out.println("d");
}
System.out.println(num2); // num2=10

image-20200928231954435

位运算符

image-20200929193717895

// 交换两个数的值
int num1 = 10;
int mun2 = 10;

//方法1 不限定数据量类型
int temp = num1;
num1 = num2;
num2 = temp;

//方法2 相加操作可能超出范围,仅用于数值类型
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;

//方法3 仅用于数值类型
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;

三元运算符

(条件表达时)?表达式1:表达式2
true:执行表达式1
false:执行表达式2

运算符优先级

image-20200929200948388