Java 中 && 和 & 的区别

在java中&和&&都属于逻辑运算符,都是判断两边条件为真时为真,否则则为假。

在程序中:

1         int i = 1;
2         if ((i++ > 1) & (i++ > 3)) {
3             System.out.println("啦啦啦");
4         } else {
5             System.out.println("噢噢噢");
6         }
7         System.out.println(i);

运行结果:

1 噢噢噢
2 3

 & 逻辑运算符实际上会把前后两个判断条件都执行一次,也就是 i 自身加两次 出现结果为 3 。  

1         int i = 1;
2         if ((i++ > 1) && (i++ > 3)) {
3             System.out.println("啦啦啦");
4         } else {
5             System.out.println("噢噢噢");
6         }
7         System.out.println(i);

 运行结果:

1 噢噢噢
2 2

&& 逻辑运算符实际上只判断了前边一个条件为假时,得出判断为false,出现结果为:2

区别:

&& 会出现短路,通过第一个表达判断整个表达式的结果,后面的表达式将不会运算。

&不会出现短路,将整个表达式都进行运算,&既可操作 boolean 数据还可以操作 数

猜你喜欢

转载自www.cnblogs.com/oukele/p/10159528.html