while(!feof(FpIp))
{
...
for(k=0;k<CNUM;k++)
{
if( 0 == memcmp(cnty[k].CntName ,addr,4) )
{
cnty[k].Num++;
}
}
}
当memcmp为0时,怎么跳出for循环,但不跳出while循环
PS:不用goto语句,据说用goto向上跳转容易形成死循环
break; //加上这句
我开始也是这么想的,没问题吗?是跳出for循环吗?
在for循环语句中执行break语句,即可跳出该for循环。
break 在一些计算机编程语言中是保留字,其作用大多情况下是终止所在层的循环。在 C语言 的 switch(开关语句)或for循环语句中,break 语句可用来在执行完一个语句后结束当前 switch 结构(或for循环结构)。简言之,执行break语句会跳出当前循环。例如语句:
while(!feof(FpIp))
{
...
for(k=0;k<CNUM;k++)
{
if( 0 == memcmp(cnty[k].CntName ,addr,4) )
{
cnty[k].Num++;
}
else break;//跳出循环
}
}
则当memcmp为0时,跳出for循环,但不跳出while循环。
起到“中断”循环语句作用的除了有break,还有continue语句,二者容易混淆。
一、continue的用法:
continue在C++、C#中有所使用,其作用为结束本次循环。即跳出循环体中下面尚未执行的语句,对于while循环,继续求解循环条件。而对于for循环程序流程接着求解for语句头中的第三个部分expression表达式。
二、break和continue的区别为:
1、作用不同:
continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
2、起作用的地方不同:
continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。break语句除了能在以上所述循环结构中使用,还能使用于switch结构。