//& && 、| || 的区别
2017-11-04 16:22
267 查看
package day;
//& && 、| || 的区别
public class Test_04 {
/*总结:|和|| 、&和&&的区别:
& (长路与):无论左边是true 还是 false; 右边都运算
&& 当左边为false时,右边不运算
| (长路或):两边都参与运算
|| 当左边为true 右边不运算
注意:& && | || 最少也是由两个表达式组成的 ;而 !非 一个表达式即可
例如System.out.println(!('a'=='a'));//非真就是假 非假就是真
* */
public static void main(String[] args) {
//&长路与:无论第一个表达式的值是true或者false都会执行右边
int i =2;
System.out.println(i==1 & i++ ==2);// 1 & 2
// false & true = false
System.out.println(i);//执行右边;i++ = (2+1)3
System.out.println(i++ ==2);// 2 & 2 这里是做判断不运算
// true & true = true
System.out.println(i);//这里是运算后的结果,执行右边;(i++ ==2)i=i+2——i=2+2——i=4
//&&短路与:只要第一个表达式的值为false,第二个表达式的值不在进行运行算
int j =2;
System.out.println(j==1 && j++ ==2);
//flase && true =false
System.out.println(j);//2 左边为false,右边表达式值不需在运算
System.out.println(j==2 && j++ ==2);//j++只做替换成数字,不运算
// true && true =tuse
System.out.println(j);//3 左边为真,右边也要执行
//| 长路或:两边都参与运算
int a =1;
System.out.println(a==1 | a++ ==2);
// true false | =true;
System.out.println(a);//2 左边为真,右边都要执行,结果输出右边的
int z =1;
System.out.println(z==2 | z++ ==1);
// false true | =true;
System.out.println(z);//2 左边为假,右边都要执行,结果输出右边的
//|| 短路或:当左边为true 右边不运算
int b =1;
System.out.println(b==1 || b++ ==2);
// true || false = true
System.out.println(b);//1 左边为真,右边不需执行,结果输出左边的
int m =1;
System.out.println(m==2 || m++ ==1);
// false || true = true
System.out.println(m); //2 左边为假,右边依旧需执行
}
}
//& && 、| || 的区别
public class Test_04 {
/*总结:|和|| 、&和&&的区别:
& (长路与):无论左边是true 还是 false; 右边都运算
&& 当左边为false时,右边不运算
| (长路或):两边都参与运算
|| 当左边为true 右边不运算
注意:& && | || 最少也是由两个表达式组成的 ;而 !非 一个表达式即可
例如System.out.println(!('a'=='a'));//非真就是假 非假就是真
* */
public static void main(String[] args) {
//&长路与:无论第一个表达式的值是true或者false都会执行右边
int i =2;
System.out.println(i==1 & i++ ==2);// 1 & 2
// false & true = false
System.out.println(i);//执行右边;i++ = (2+1)3
System.out.println(i++ ==2);// 2 & 2 这里是做判断不运算
// true & true = true
System.out.println(i);//这里是运算后的结果,执行右边;(i++ ==2)i=i+2——i=2+2——i=4
//&&短路与:只要第一个表达式的值为false,第二个表达式的值不在进行运行算
int j =2;
System.out.println(j==1 && j++ ==2);
//flase && true =false
System.out.println(j);//2 左边为false,右边表达式值不需在运算
System.out.println(j==2 && j++ ==2);//j++只做替换成数字,不运算
// true && true =tuse
System.out.println(j);//3 左边为真,右边也要执行
//| 长路或:两边都参与运算
int a =1;
System.out.println(a==1 | a++ ==2);
// true false | =true;
System.out.println(a);//2 左边为真,右边都要执行,结果输出右边的
int z =1;
System.out.println(z==2 | z++ ==1);
// false true | =true;
System.out.println(z);//2 左边为假,右边都要执行,结果输出右边的
//|| 短路或:当左边为true 右边不运算
int b =1;
System.out.println(b==1 || b++ ==2);
// true || false = true
System.out.println(b);//1 左边为真,右边不需执行,结果输出左边的
int m =1;
System.out.println(m==2 || m++ ==1);
// false || true = true
System.out.println(m); //2 左边为假,右边依旧需执行
}
}
相关文章推荐
- &和&&的区别
- "*.py"和"*.pyw"的区别
- '\r' 与 '\n'的区别
- <转>android 中px,sp等的区别
- &&、||和&、|的区别
- <sstream>和<strstream>的区别
- "ICS"与"NAT"转换有什么区别?
- 将js代码放到<head>标签和放到<body>标签里的区别
- <string> 与<string.h>、<cstring>的区别
- 一维数组和指针 array、&array[0]和&array的区别
- <context-param>与<init-param>的区别与作用
- <%@ include file=""%>与<jsp:include page=""/>区别
- <context-param>与<init-param>的区别与作用
- <context-param>与<init-param>的区别与作用
- <input type="image"> 和 <img> 用法区别
- "=="和equals方法究竟有什么区别
- &和&&的一点区别
- && 和& 的区别
- &和&&的区别?
- [转]asp.net 前台绑定后台变量方法总结:<%= %> 和<%# %>的区别