我目前正在learn-c.org学习非常基本的C(我知道PHP / HTML / VBasic),但我很难理解为什么if
语句会导致{{1}离开的陈述。该网站说while
导致while循环重新启动,但是如果if语句为真,即使省略这个也会使我的while循环返回到开头。
代码如下:
continue
我希望while语句的第一轮命中第一个int array[] = {1, 7, 4, 5, 9, 3, 5, 11, 6, 3, 4};
int i = 0;
while (i<10) {
if(array[i] < 5){
i++;
}
if(array[i] > 10){
break;
}
printf("%d\n",array[i]);
i++;
}
(因为if
将为1,但继续进行,因为没有任何内容表示&#34;停止循环& #34;,除非我将array[i]
放在continue;
之后,为什么会按i++;
语句进行while循环?这是否意味着我不能有多个if {#1}}在C while循环中被击中(我确信你可以在PHP中,我主要在PHP中使用if
)?
答案 0 :(得分:2)
while循环正如所写。
我是0
第一个if为true,因为array [0]为1所以i增加到1
第二个if为false,因为数组[1]为7
printf显示7
我增加到2
回到顶部
第一个if为true,因为array [2]为4,所以i增加到3
第二个if为false,因为数组[3]为5
printf显示5
我增加到4
回到最顶端......
答案 1 :(得分:1)
break
指令将立即结束它所调用的任何循环,这就是你的while循环退出的原因。
continue
没有退出循环,它结束当前迭代并开始下一个循环,#34;继续&#34;循环。
答案 2 :(得分:0)
break语句结束最近的封闭循环或条件语句的执行。 引自msdn http://msdn.microsoft.com/en-us/library/wt88dxx6.aspx
当while函数到达时
if(array[i] > 10){
break;
和i等于7 break命令将结束while
的执行继续:
continue语句将控制传递给最近的封闭do,for或while语句的下一次迭代,绕过do,for或while语句体中的任何剩余语句。 引自msdn http://msdn.microsoft.com/en-us/library/0ceyyskb.aspx
如上面的引文中所述,continue语句将跳过(绕过)while中的所有内容(在您的情况下)并开始while的下一次迭代
答案 3 :(得分:0)
来自:break Statement (C)您可以阅读:
The break statement is frequently used to terminate the processing of a
particular case within a switch statement. Lack of an enclosing iterative or
switch statement generates an error.
即。这将终止while循环。如果条件适用于你的情况。
你所说的continue
声明赢了重启while循环,它将转到下一个元素。< / p>
在您的代码中,您有:
if(array[i] > 10){
break;
}
对于11
,它将完成while
循环,但如果您使用continue
,请执行以下操作:
if(array[i] > 10){
i++;
continue;
}
将&#34;跳跃&#34; 11
并转到6
答案 4 :(得分:0)
在while中使用break
导致while循环,当我变为7(array [7] = 11> 10)终止它时,不会在屏幕上打印数组的其余元素