怎么跳出这个for循环

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结构。

参考资料:

break-百度百科

continue-百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-22
for(k=0;k<CNUM;k++)
{
if( 0 == memcmp(cnty[k].CntName ,addr,4) )
{
cnty[k].Num++;
break; //加上这句
}
}
要想退出某个循环,只要在那个循环的语句块里面,按照你的逻辑,出现一个break就行!要是两层循环,都要跳出,那就出现两个break!

for(1)
{
for(2)
{
break;//这个是for(2)所属的break,遇到这个break就跳出for(2)
}
break;//这个是for(1)所属的break,遇到这个break就跳出for(1)

}
第2个回答  2010-03-19
要想退出某个循环,只要在那个循环的语句块里面,按照你的逻辑,出现一个break就行!要是两层循环,都要跳出,那就出现两个break!

for(1)
{
for(2)
{
break;//这个是for(2)所属的break,遇到这个break就跳出for(2)
}
break;//这个是for(1)所属的break,遇到这个break就跳出for(1)

}
第3个回答  2010-03-19
while(!feof(FpIp))
{
...

for(k=0;k<CNUM;k++)
{
if( 0 == memcmp(cnty[k].CntName ,addr,4) )
{
cnty[k].Num++;
break; // 加上这句

}
}

}

注意 break 和 continue 区别;
第4个回答  2010-03-19
if( 0 == memcmp(cnty[k].CntName ,addr,4) )
{
cnty[k].Num++;
break;//跳出for循环
}
相似回答