运算符是一种特殊符号,用以表示数据的运算、赋值和比较等
-
算数运算符
-
赋值运算符
-
比较运算符(关系运算符)
-
逻辑运算符
-
位运算符(开发中用的较少)
-
三元运算符
算数运算符
public class AriTest {
public static void main(String[] args){
//除号(特殊情况)
int num1 = 12;
int num2 = 5;
int result1 = num1 / num2;
System.out.println(result1);//2
int result2 = num1/num2 * num2;
System.out.println(result2);//10
double result3 = num1 / num2;
System.out.println(result3);//2.0
double result4 = num1 / num2 + 0.0;//2.0
double result5 = num1 / (num2 + 0.0);//2.4 先从整型变为浮点型再运算(和浮点型运算,自动提升为浮点型)
double result6 = (num1 + 0.0) / num2 ;//2.4
System.out.println(result4);
System.out.println(result5);
System.out.println(result6);
double result7 = (double)num1 / num2 ;//2.4 强制转换
// %:取余运算()取模
int m1 = 12;
int n2 = 5;
System.out.println("m1 % n1 =" + m1 % n2); //注意:运算结果正负取决于被模数(被除数)的正负
// (前)++ 先运算+1后赋值
// (后)++ 先赋值后运算+1
int a1 =100;
int b1 =a1++;
System.out.println("a1 ="+a1 + "b1 ="+b1);// a1=101 b1=100
int a2 = 100;
int b2 = ++a2;
System.out.println("a2 ="+a2 + "b2 ="+b2);// a2=101 b2=101
//(前)-- 先运算加1后赋值
//(后)-- 先赋值后运算加1
}
}
赋值运算符
-
符号:=
1.当“=”两侧数据类型不一致时 。可以使用自动类型转换或使用强制类型转换原则进行处理
2.支持连续赋值
-
扩展赋值运算符:+=,-=,*=,=,%=
public class SetValueTest {
public static void main(String[] args){
//赋值符号:=
int i1 = 10;
int j1 = 10;
int i2,j2;//连续赋值。与上面效果一样
i2 = j2 = 10;
int i3 = 10,j3 = 20;//与上面相同
/
public class CompareTest {
public static void main(String[] args){
int i = 10;
int j =20;
System.out.println(i == j);//false
System.out.println(i = j);//20
boolean b1 = true;
boolean b2 = false;
System.out.println(b2 == b1);//false
System.out.println(b2 = b1);//true
}
}
逻辑运算符
public class LogicTest {
public static void main(String[] args){
//区分& 与 &&
boolean b1 = true;
b1 = false;
int num1 = 10;
if(b1 & (num1++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num1 =" + num1);
boolean b2 = true;
b2 = false;
int num2 = 10;
if(b2 && (num2++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num2 =" + num2);
//区分: | 与 ||
boolean b3 = false;
b3 = true;
int num3 = 10;
if(b3 | (num3++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num3 =" + num3);
boolean b4 = false;
b4 = true;
int num4 = 10;
if(b4 || (num4++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num4 =" + num4);
}
}
位运算符
三元运算符
//获取两个数的较大值
public class SanYuanTest {
public static void main(String[] args){
int a = 24;
int b = 12;
int max = (a > b)?a : b;
System.out.println(max);
//获取三个数的较大值
int a1 = 24;
int b1 = 32;
int c = -50;
int max1 = (a1 > b1)? a1 : b1;
int max2 = (max1 > c)? max1 : c;
System.out.println("三个数中最大值为:"+ max2);
}
}
凡是可以使用三元运算符的地方,都可以改写为if-slse



