这题答案是3还是5啊?

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:55:24
题目如下:(求最后x的值?答案是5)
for(int x=0,j=0;j<2;j++) //1
{ //2
x++; //3
for(int i=0;i<=5;i++) //4
if(i%4){x++;} //5
else{continue;x--;} //6
break; //7
x++; //8
} //9
哈哈 原来还有和我一样的小菜哦 嘿嘿`````电脑显示是5 可我还是弄不明白啊 总是觉得是3啊 ·有谁能详细说说吗?越详细越好!谢谢···············
我认为,首先一开始,到第3行,x变为1,第4,5,6行使得x变为3(内部循环i从1到5,x加了两次),接下来不就到break了吗?外部直接结素了啊!那么最后x不就是3了??糊涂了````

3

我在下面已经给你说得很清楚了.还要特别说明一下,逻辑true为非零,不是 1,而逻辑false为零.记住了.根据我下面的代码,当i=1,2,3,5的时候都会进行+1操作,所以很容易看出是5了.
==========================================================
说明:else{continue;x--;}中的x--根本就没机会执行,只是拿来迷惑人的.
这样你再根据循环推下,就清楚了.
第7行以后的也没有用,虽然第一个for的作用域是到第9行,但第7行以后的代码根本没机会执行,我们可以当成没写这一句代码.还有就是第一个循环虽然说允许循环两次,但实际上第一次循环到break处时,就已经跳出了循环,所以实际上只循环了一次,我们可以简化为不要这第一个循环,根据上面说的,我们把代码改一下,如下:

int x,j;
x = j = 0;

x++; //3
for(int i=0;i<=5;i++) //4
if(i%4){x++;} //5
else{continue;} //6

根据上面的代码,很容易看出结果是5.呵呵.

答案当然是5了

5,不多说了

5

如果你的第二个x++包含在第二个for循环里。
标准答案就是 4.
如果你的第二个x++不包含在第二个for循环里。
标准答案是6.
这里不作任何解释,想知道为什么给我发Message就行了