c语言循环语句和循环控制例题解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。
int main (i nt argc, char *argv[])
{
int sn=0,i;
for(i=1;i<=100;i++)
}
从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值跳过去了,接 着执行下次循环。
int main (i nt argc, char *argv[])
{
int i,j;
prin tf(i j\n);
for(i=0;i<2;i++) for(j=0;j<3;j++)
{
if(j==1) con ti nue;
}
输出结果为:
i j k
0 0 0
0 0 1
所以在同时跳出多层循环时,应该使用goto语句。记住,所有的goto语句其实都是可以用
break,continue代替的。
下面举几个例子:
1•求两个整数的最大公约数。例如10和15的最大公约数是5。
分析:最大公约数一定小于等于最小的那个数一半,同时能被两数整除。
for(k=0;k<3;k++)
{
if(k==2) goto loop;
prin tf(%d %d %d\n, i,j,k);
}
loop:;
}
输出结果为:
i j k
0 0 0
0 0 1
如果不使用goto语句,而使用break,continue语句,应该这样
int main (i nt argc, char *argv[])
int main (i nt argc, char *argv[])
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面 的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。
例如:
int main (i nt argc, char *argv[])
{
int sn=0,i;
for(i=1;i<=100;i++)
循环。
例如:
int main (i nt argc, char *argv[])
{
int sn=0,i;
for(i=1;i<=100;i++)
{
if(i==51) continue; /*如果i等于51,则结束本次循环*/
sn+=i; /*1+2+……+50+52+……+100*/
}
prin tf(%d\n,s n);
}
}
输出结果为:
i j
0 0
0 1
1 0
1 1
当i==0,j==2时,执行break语句,跳出到外层的循环,i变为1。
(二)、continueHale Waihona Puke Baidu句
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速
{
int i,j,k;
prin tf(i j\n);
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++)
{
if(k==2) break;
printf(%d %d %d\n,i,j,k);
}
if(k==2) break;
}
if(k==2) break;
}
{
if(i==51) goto loop; /*如果i等于51,则跳出循环*/
sn+=i; /*1+2++50*/
}
loop:;
prin tf(%d\n,s n);
}
可以看出,这儿的goto语句和break作用很类似。
这儿的loop:;
prin tf(%d\n,s n);
也可以写成loop: printf(%d\n,sn);
}
可以看出这儿的loop语句和continue的作用类似。
但是某些情况下又必须使用goto语句,否则会让程序大大臃肿。如:
int main (i nt argc, char *argv[])
{
int i,j,k;
prin tf(i j k\n);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(i==51) break; /*如果i等于51,则跳出循环*/
sn+=i; /*1+2++50*/
}
prin tf(%d\n,s n);
}
可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了。自己写
写怎样在while和do--while循环中增加break语句。
1.break语句对if-else的条件语句不起作用。
一、循环控制
(一)、break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序
跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退 出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。
2.在多层循环中,一个break语句只向外跳一层。
例如:
int main (i nt argc, char *argv[])
{
int i,j;
prin tf(i j\n);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
if(j==2) break;
prin tf(%d %d\n,i,j);
int main (i nt argc, char *argv[])
{
int sn=0,i;
for(i=1;i<=100;i++)
{
if(i==51) goto loop; /*如果i等于51,则跳出本次循环*/
sn+=i; /*1+2+……+50+52+……+100*/
loop:;
}
prin tf(%d\n,s n);
prin tf(%d %d\n,i,j);
}
}
输出结果为:
i j
0 0
0 2
1 0
1 2
(三卜goto语句
goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为:
goto标号;
其中标号是Turbo C 2.0中一个有效的标识符,这个标识符加上一个:一起出现在函数内某处, 执行goto语句后,程序将跳转到该标号处并执行其后的语句。标号既然是一个标识符,也 就要满足标识符的命名规则。另外标号必须与goto语句同处于一个函数中,但可以不在一
相关文档
最新文档