注册 登录
编程论坛 新人交流区

for循环条件中的 !

wxhkimmy 发布于 2007-11-17 21:49, 694 次点击
int i=0;j=0;
for(; !j&&i<=5;i++)
j++;
A. 6
B. 无限
C. 5
D. 1

这个为什么是选D啊,!j&&i<=5这还有个!是什么意思啊?谢谢!
5 回复
#2
wxhkimmy2007-11-17 22:16
这题是求循环次数,不好意思题目都给漏了
#3
succubus2007-11-17 22:19
根据运算符优先级!j&&i<=5相当于(!j) && (i<=5)
开始时i=0;j=0; 此时(!j) && (i<=5)为真,因此执行本次循环
之后 i=1;j=1; 此时(!j) && (i<=5)为假,因此退出循环
so循环次数1;

[此贴子已经被作者于2007-11-17 22:20:33编辑过]

#4
StarWing832007-11-17 22:23

……
!j&&i<=5
我写漂亮点
(!j) && (i<=5)
也就是
(j==0) && (i<=5)

循环开始时,j的确是等于0的,i也小于5(因为也等于0),然后开始循环。i++没关系。因为i仍然小于5,但是j等于0,j++就等于1了。所以第一个条件不满足了。跳出循环。循环只执行了一次。
!是C的运算符。叫做逻辑非运算符。是个单目运算符,你可以在任何一本教材里面找到它……

#5
wxhkimmy2007-11-17 22:29

I know it !Thank you!

#6
dengyixinos2007-11-18 15:32
注意下优先级
1