C 中断if语句,但不中断for循环
如何使这段代码只中断内部if语句,而不停止for循环C 中断if语句,但不中断for循环,c,C,如何使这段代码只中断内部if语句,而不停止for循环 #include <stdio.h> int main() { int i,j; for(i=0;i<10;i++) { if((i==2 || i==8 || i==4)) { printf("\ni is %d\n",i); if(i==4) { print
#include <stdio.h>
int main()
{
int i,j;
for(i=0;i<10;i++)
{
if((i==2 || i==8 || i==4))
{
printf("\ni is %d\n",i);
if(i==4)
{
printf("\ni is %d\n",i);
break;
}
else
{
printf("\ni is not 4\n");
}
}
else
{
printf("\nnext\n");
}
printf("\ngoes out of innner if\n");
}
return 0;
}
#包括
int main()
{
int i,j;
对于(i=0;i我认为continue语句可能就是您要寻找的东西
还要注意if()不是循环。if
语句不是循环;您不会“中断”它们。当您在if
语句中使用break
时,它将中断直接包围它的循环(在本例中为for循环)在if
块中,break
不会受到任何不同的处理
如果
块在到达它们内部的代码末尾时停止执行,或者直到它们碰到可能导致它们停止执行的东西(例如返回
)。我认为这会让人困惑,但您可以使用只执行一次的循环:
do {
/* ... */
if(i==4)
{
printf("\ni is %d\n",i);
break;
}
/* ... */
} while(0);
你没有内部循环。if
语句不是循环。看看这段代码,告诉我它的格式正确。你不需要中断if循环。你希望控制流在break
之后到哪里去?我建议用goto
语句代替break;-)此处不需要continue,因为在if之后不做任何操作。这里有printf(“\n超出Inner if\n”);台词:我很高兴你添加了这个笑脸,因为我当然知道,但我认为提到它会很愚蠢和迂腐。我担心那些对评论投赞成票的人。很好的解释,+1。有时候这是一个有用的结构,比没有它所需要的意大利面代码或无关的标志更清晰。