java基础语法4
java学习路线Day5
一、关系运算符(比较运算符)
== < > >= <= !=
等价于 小于 大于 大于等于 小于等于 不等于
1.一个关系表达式的计算结果一定是boolean类型
2.==是比较运算符,与=不同
示例:
public class GuanXiOptDemo1 {
public static void main(String[] args) {
int a = 40;
int b = 20;
System.out.println(a == b);
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
System.out.println(a != b);
}
}
二、逻辑运算符
& | ! ^ && ||
与 或 非 异或 短路与 短路或
示例:
public class LuoJiOptDemo1 {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;
//与:有Flase则Flase
System.out.println(a>b & a<c);
System.out.println(a<b & a>c);//一边是Flase,整体结果就是false
System.out.println(a<b & a<c);//两边都是Ture,结果才是Ture
System.out.println("****************");
//或:有Ture则Ture
System.out.println(a>b | a<c);
System.out.println(a<b | a>c);//一边是ture,整体结果就是ture
System.out.println(a>b | a>c);//两边都是Flase,结果才是Flase
System.out.println("****************");
//异或:相同则Flase,不同则true
System.out.println(a<b ^ a<c);//两边都是Ture,结果为Flase
System.out.println(a>b ^ a>c);//两边都是Flase,结果为Flase
System.out.println(a<b ^ a>c);//一边Ture,一边Flase,结果才为Ture
}
}
与:有Flase则Flase
或:有Ture则Ture
异或:相同则Flase,不同则true
短路与、短路或:
public class LuoJiOptDemo2 {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;
int d = 6;
System.out.println(++a == 3 & b++ == 6);
System.out.println(a);
System.out.println(b);
System.out.println(++c == 3 && d++ == 6);
System.out.println(c);
System.out.println(d);
//当&&左边的表达式为Flase是,就不会再计算右边的表达式了,结果就是Flase。所以称为“短路与”
// 当||左边的表达式为true是,就不会再计算右边的表达式了,结果就是true。所以称为“短路或”
}
}
观察结果,
System.out.println(++a == 3 & b++ == 6);当程序运行到 & 与运算前的++a已经是Flase了,但是程序没有停止,而是继续运行后面的b++,所以最终b=5.
System.out.println(++c == 3 && d++ == 6);当程序运行到 & 与运算前的++c已经是Flase了,然后程序即刻停止,直接返回结果Flase。没有运行后面的d++,所以最终d还是为6.
总结:
- 当&&左边的表达式为Flase是,就不会再计算右边的表达式了,结果就是Flase。所以称为“短路与”
- 当||左边的表达式为true是,就不会再计算右边的表达式了,结果就是true。所以称为“短路或”