扩展运算符
程序
public class Dd1 {
public static void main(String[] args) {
int a=3;
int b=4;
a+=b;//相当于a=a+b;
System.out.println("a="+a+"\nb="+b);
a=3;
a*=b+3;//相当于a=a*(b+3)
System.out.println("a="+a+"\nb="+b); }
}
运行结果:
a=7
b=4
a=21
b=4
关系运算符
- ==、!= 是所有(基本和引用)数据类型都可以使用
- > 、>=、 <、 <= 仅针对数值类型(byte/short/int/long, float/double。以及char)
逻辑运算符
短路与和逻辑与的程序:
public class Dd1 {
public static void main(String[] args) {
//1>2的结果为false,那么整个表达式的结果即为false,将不再计算2>(3/0)
boolean c=1>2&&2>(3/0);
System.out.println(c);
//1>2的结果为false,那么整个表达式的结果即为false,还要计算2>(3/0),0不能做除数,//会输出异常信息
boolean d=1>2&2>(3/0);
System.out.println(d);
}
}
程序运行结果:
false
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Dd1.main(Dd1.java:7)
位运算符
public class Test1 {
public static void main(String[] args) {
int a=3*2*2;
int b=3<<2; //相当于:3*2*2
int c=12/2/2;
int d=12>>2; //相当于:12/2/2
System.out.println(a+"\t"+b+"\t"+c+"\t"+d);
}
}
程序运行结果:12 12 3 3
注: 1. &和|既是逻辑运算符,也是位运算符。如果两侧操作数都是boolean类型,就作为逻辑运算符。如果两侧的操作数是整数类型,就是位运算符。
2. 不要把“^”当做数学运算“乘方”,是“位的异或”操作。
字符串连接符
“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接
条件运算符
public class Test2 {
public static void main(String [] args) {
int score=80;
int x=-100;
String type=score<60?"不及格":"及格"; //type=及格
int flag=x>0?1:(x==0?0:-1); //flag=-1
System.out.println("type="+type);
System.out.println("flag="+flag);
}
}
程序运行结果:
type=及格
flag=-1