黑马程序员技术交流社区
标题:
& 的使用
[打印本页]
作者:
lgqioi
时间:
2014-4-19 13:03
标题:
& 的使用
public static void main(String[] args) {
int x = 4;
int y = 5;
if (x++ > 4 & ++y > 5) {
x++;
}
System.out.println("x=" + x + ",y=" + y);
}
& : 两边的boolean表达式结果,有一个为false。那么结果就是false。 否则为true。
if语句条件为假,内容不运算
哪为什么是 x=5,y=6 请您解释解释
作者:
月光海
时间:
2014-4-19 13:09
因为x++ > 4 & ++y > 5执行了,所以结果就是x=5,y=6。。。。。判断语句里x++的意思是x=x++,此时x是4,执行完if,x才变成5
作者:
清风夜独醉
时间:
2014-4-19 13:22
if语句判断x++>4这条语句,先判断x是否大于4,不管结果如何,x都会自增1.所以执行完这条语句的结果是:false,然后x=5.
因为&这个符号和&&这个符号是有区别的,&无论前面是否为false,后面语句也要进行判断;而&&如果前面为false,后面的语句就不再判断,直接返回false。
因为你用的&这个符号,虽然前面判断结果为false,但是后面的语句仍会判断执行,所以y的值就变成了6.
因此你的打印结果就是:x=5,y=6
作者:
曹冬明
时间:
2014-4-19 13:30
简单的说,你的这些代码除了if语句里的x++没有运算,其他的都运算了
作者:
清风有意
时间:
2014-4-19 13:40
当是&&双与时,左边如果为假,则不进行右边的运算。而双与是两边都进行运算。
双与代码如下:
package exercise;
public class Test5 {
public static void main(String[] args) {
int x = 4;
int y = 5;
if (x++ > 4 && ++y > 5) {
x++;
}
System.out.println("x=" + x + ",y=" + y);
}
}
复制代码
作者:
呆呆沙师妹
时间:
2014-4-19 13:48
理解一下短路运算符和非短路运算符的区别:
短路运算符: && ||
非短路运算符: & |
和运算时:运算符两边都为真时结果才为真,否则为假,短路运算符 && 在左边运算符为假时就不再运算右边的直接返回假,&则两边都会运算;
或运算时:运算符两边都为假时结果才为假,否则为真,短路运算符 || 在左边运算符为真时就不再运算右边的直接返回真,| 则两边都会运算;
作者:
﹊佑雨时杰↘
时间:
2014-4-19 13:48
原因就是这句
if (x++ > 4 & ++y > 5) {
x++;
}
if语句条件为假,内容不运算 但是(x++ > 4 & ++y > 5 ) 这句执行了 所以x=5,y=6
作者:
千殇轮回
时间:
2014-4-19 15:51
public static void main(String[] args) {
int x = 4;
int y = 5;
if (x++ > 4 & ++y > 5) {
x++;
}
System.out.println("x=" + x + ",y=" + y);
}
这里的x++>4,因为是后++,所以先用x与4相比较,结果为false,然后x再自增1,x值就为5,
后面的 ++y > 5,因为++y是前++,所以这里y要先自增1,y值就为6,然后再与5比较,结果为true
这里你要注意一下&和&&的区别,&是不会短路的就算x++>4结果为false,后面的++y > 5还是要执行的
要是这里是&&,就不用执行了,所以x=5,y=6
作者:
四川男人
时间:
2014-4-19 21:22
public static void main(String[] args) {
int x = 4;
int y = 5;
if (x++ > 4 & ++y > 5) { //&运算符是不论左边是否为正,右边都要执行。
//x是先赋值再自加4>4为false,自加后x=5,右边先自己再赋值6>5,
//自加后y=6,if里面为false,不执行
//if语句块儿,所以最后输出还是5、6
x++;
}
System.out.println("x=" + x + ",y=" + y);
}
作者:
宋大龙
时间:
2014-4-19 21:57
因为 x++ >4 加号在后面,所以先用x跟4比较然后在++ 结果为false但
此时x的值已经变成5了
,&单与是不过前面是否正确,后面都要继续判断,++y>5 加号在前面,所以先加1
y的结果为6
然后跟5比较 。所以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2