java的运算符
1.基本运算符
+ 、-、 *、 /、 %
//取余的结果和被模数的符号一样
int m1 = 12;
int n1 = 5;
int m2 = -12;
int n2 = 5;
int m3 = 12;
int n3 = -5;
int m4 = -12;
int n4 = 5;
System.out.println(m1 % n1);//2
System.out.println(m2 % n2);//-2
System.out.println(m3 % n3);//2
System.out.println(m4 % n4);//-2
自增 ++ ,自减--
//(前)++ 先自增1,在运算
//(后)++ 先运算,在自增1
int a1 = 10;
int b1 = a1++;
int a2 = 10;
int b2 = ++a2;
// a1 =11 a2 = 11 b1 = 10 b2 = 11
System.out.println(b1+"-----"+b2);
short s1 = 12;
//自增不会改变变量的数据类型
s1++;//13
System.out.println(s1)
2.赋值运算符
推荐使用 +=
int num1 = 12;
num1 += 1;//num1 = num1 + 1
int num = 12;
num %= 5;//num = num % 5
short sh = 12;
//sh = sh + 1;编译不通过,short不能转换为int
sh += 1;//不会改变数据类型
System.out.println("sh = " + sh);//13
3.比较运算符
int num3 = 10; int num4 = 20; System.out.println(num3 == num4);//false System.out.println(num3 = num4);//20 boolean boo1 = true; boolean boo2 = false; System.out.println(boo1 == boo2);//false System.out.println(boo1 = boo2);//true
4.逻辑运算符
& 与 && 的区别
当符号左边是false时,&会继续执行符号右边的运算。&&不会再执行
| 与 || 的区别
当符号左边是false时,两个都会执行右边的运算
当符号左边是true时,|会继续执行右边的运算,||不在执行
boolean boo3 = false;
int i = 10;
if (boo3 & (i++ > 0)){
System.out.println("truetrue");
}else{
System.out.println("falsefalse");
}
System.out.println(i);//11
boolean boo4 = false;
int ii = 10;
if (boo4 && (i++ > 0)){
System.out.println("truetrue");
}else{
System.out.println("falsefalse");
}
System.out.println(ii);//10
5.三元运算符
(条件表达式)?表达式1 : 表达式2
如果条件表达式为true,则执行表达式1
如果为false,执行表达式2
三元运算符可以嵌套
使用三元的都可以改为if-else
//获取两个数的较大值
int t1 = 12;
int t2 = 5;
int max = (t1 > t2) ? t1 : t2;
//获取三个数的最大值
int z1 = 12;
int z2 = 41;
int z3 = -131;
int maxz = (z1 > z2) ? ((z1 > z3) ? z1 : z3) : ((z2 > z3) ? z2 : z3);
int maxz1 = (z1 > z2) ? z1 : z2;
int maxz2 = (maxz1 > z3) ? maxz1 : z3;
System.out.println("三个数中最大为" + maxz);
System.out.println("三个数中最大为" + maxz1);
测试
1.给出一个3位数,取出它的个十百位
int a = 235; int hundred = a / 100; int ten = a % 100 / 10; int one = a % 10;//直接除以10就行 System.out.println("百位是:"+hundred+",十位是:"+ten+"个位是:"+one);
2.交换两个数的位置
int num1 = 10;
int num2 = 20;
//方式一:定义中间变量
// int temp = num1;
// num1 = num2;
// num2 = temp;
// System.out.println("num1 = " + num1 +"\n"+ "num2 = " + num2);
//方式二:叠加 弊端:1.相加可能超出范围。2.有局限性,只适用于数值类型
// num1 = num1 + num2;
// num2 = num1 - num2;
// num1 = num1 - num2;
//方式三:使用位运算符 仍然只适用数值类型
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
浙公网安备 33010602011771号