我试图搜索一个数组,只检查特定的值(第4、第5等)-((0+n*4)和(3+n*4)。
将检查找到的第一个,如果其值为0,则将其更改为1,然后程序应停止。如果没有,它将尝试下一个值,以此类推。。
我有下面的代码,但它没有停止..它使所有的值同时为1。。
有什么建议吗?
{
for (i=0; i<(totalnumber); i++)
{ for (n=0; n<((totalnumber)/4); n++)
{ if (i==(0+(n*4)))
{ if (array[i]==0)
{
array[i]=1;
break;
}
}
else if ((i==(3+(n*4))))
{
if (array[i]==0)
{
array[i]=1;
break;
}
}
}
}
}
最佳答案
使用单个break
语句只会中断最近的循环。它不会脱离外部循环所以,也要改变你的代码以脱离外部循环。
另一种方法是在同一for循环中同时使用两个计数器变量i
,i
。也就是说,你只需要使用一次n
就可以跳出外部for循环。
我引用MSDN
在嵌套语句中,break语句仅终止立即将其括起来的do、for、switch或while语句。您可以使用return或goto语句将控制权从嵌套结构转移到其他位置。
这是相关的-Can I use break to exit multiple nested for loops?