黑马程序员技术交流社区
标题:
昨天第一次考试 有一道题想要请教大家
[打印本页]
作者:
咕噜咕噜
时间:
2016-5-15 08:37
标题:
昨天第一次考试 有一道题想要请教大家
int x =1,y=1;
if(x++==2 & ++y==2)
{
x=7;
}
这道题为什么x=2,y=2?x为false也参与运算吗
作者:
何亚辉
时间:
2016-5-15 08:40
&运算符是不论左边true还是false都会执行右边,,,如果你把&改成&&就不会执行右边了
作者:
sincere126
时间:
2016-5-15 10:00
&是逻辑与运算符。楼上是正解,另外,补充一下:&运算符的运算规则为两个操作数都是true,结果才为true.
作者:
TCK8888
时间:
2016-5-15 11:37
“&”逻辑运算符,两边表达式都执行,且都为true,结果才为true,“&&”逻辑运算符表示,当第一个表达式为false时,就不会去判断第二个表达式,可节省计算机的判断次数
作者:
zhanghui1851155
时间:
2016-5-15 13:54
因为是&,和&&结果是一样,但参与运算的话&&会有短路效果,而&左边为false右边一样执行,所以右边也执行了
作者:
lvaenet1
时间:
2016-5-15 18:54
注意观察细节 这个题目真的不难
作者:
Noodles.
时间:
2016-5-15 23:16
x为false也参与运算吗 .是的,参与运算.
作者:
泪雨星空
时间:
2016-5-15 23:28
int x =1,y=1;
if(x++==2 & ++y==2)
// x++==2,x先与x比较x==2是false,然后在x++,而++y是先自增 y=2再比较y==2是true;
&不管前面的表达式是真还是假都会运算后面的表达式,而&&如果前面的表达式是假,后面的表达式是不会参与运算的;
{
x=7;
}
作者:
一架飞机CE3
时间:
2016-5-15 23:36
你应该用短路与符号 这样前面为false时后面就不会执行了 用&的话整个程序都会执行完 不管你前面是false还是true
作者:
hjbing456
时间:
2016-5-15 23:40
这个左边是false 右边是true 因为是单与 所以两边都执行 , 赋值后的x=2 y=2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2