如何才能使这段代码脱离内部if语句而不是停止for-loop?
#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;
}
此循环在i=4
处爆发。有没有办法在i-4
突破并继续for for循环直到i<10
?
答案 0 :(得分:3)
我认为继续陈述可能是您正在寻找的东西。
还要注意if()不是循环。
答案 1 :(得分:2)
if
语句不是循环;你不要“爆发”它们。在break
语句中使用if
时,它将突破直接包围它的循环(在本例中为for循环)。 break
块内的if
未被区别对待。
if
块在到达其中的代码末尾时停止执行,或直到它们遇到会导致它们无论如何都停止执行的内容(例如return
)。
答案 2 :(得分:1)
我认为这会让人感到困惑,但你可以使用一个只执行一次的循环:
do {
/* ... */
if(i==4)
{
printf("\ni is %d\n",i);
break;
}
/* ... */
} while(0);