个人感觉,循环结构比较有意思。像很多复杂的计算,交给电脑来做就可以了。写上两行代码,坐享其成,何乐不为。
break和continue语句
-
break语句
break语句的一般形式如下所示:
break;
其执行过程是:终止对switch语句或循环语句的执行,即跳出这两种语句,而转入下一语句执行。
使用break语句应注意如下几个问题:
-
break语句只能用于循环语句或switch语句中。如果在程序中有下列语句:
if(…)
break;
则此时的if语句一定位于循环体中或switch语句中,break语句跳出的也不是if语句,而是跳出包含此if语句的循环体或switch语句。
(2)由于循环语句的循环体部分还可以使用循环语句,这样,循环语句就可以嵌套使用。在循环语句嵌套使用的情况下,break语句只能跳出(或终止)它所在的循环,而不能同时跳出(或终止)多层循环,如:
for(…)
{
for(…)
{…
break;
}
}
上述的break语句只能从内层的for循环体中跳到外层的for循环体中,而不能同时跳出两层循环体。
【例6-13】从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“换行”字符时结束。
#include"stdio.h"
main ()
{
char ch;
int sum=0;
while(1)
{
ch=getchar();
if(ch=='\n')
break; /*跳出整个while循环结构*/
if(ch>='A'&&ch<='Z')
sum++;
}
printf("sum=%d\n",sum);
}
说明:在本程序中,while(1)表示“无限循环”,即循环条件总为“真”,在这种情况下,就只能依靠循环体中的语句来结束循环了。由程序可知,当读入的字符是“换行”符(’\n’)时,将执行break语句,这时,将终止循环体的执行。
【例6-14】在循环体中break语句执行示例。
#include"stdio.h"
main ()
{
int i,s=0;
for(i=1;i<=10;i++)
{
s=s+2;
if(s>5)
break; /*跳出整个for循环结构*/
printf("s=%d\n",s);
}
}
程序运行结果:
s=2
s=4
上例中,如果没有break语句,程序将进行10次循环;但当i=3时,s的值为6,if语句中的表达式:s>5的值为1,于是执行break语句,跳出for循环,从而提前终止循环。
-
continue语句
continue语句的一般形式为:
continue;
其作用是结束本次循环,即跳过本层循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。注意:执行<