c语言第六章 循环控制

第六章循环控制
一、循环语句
(一)、for循环
它的一般形式为:for(<初始化>;<条件表过式>;<增量>)语句;
初始化总是一个赋值语句,它用来给循环控制变量赋初值;条件表达式是一个
关系表达式,它决定什么时候退出循环;增量定义循环控制变量每循环一次后
按什么方式变化。这三个部分之间用;分开。
例如:
for(i=1;i<=10;i++)
语句;
上例中先给i赋初值1,判断i是否小于等于10,若是则执行语句,之后值增加1
。再重新判断,直到条件为假,即i>10时,结束循环。
注意:
(1).for循环中语句可以为语句体,但要用{和}将参加循环的语句括起来。
(2).for循环中的初始化、条件表达式和增量都是选择项,即可以缺省,但;不
能缺省。省略了初始化,表示不对循环控制变量赋初值。省略了条件表达式,
则不做其它处理时便成为死循环。省略了增量,则不对循环控制变量进行操作
,这时可在语句体中加入修改循环控制变量的语句。
(3).for循环可以有多层嵌套。
例如:
for(;? 语句;
for(i=1;;i+=2) 语句;
for(j=5;? 语句;
这些for循环语句都是正确的。
main()
{
int i,j;
printf(i j\n);
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf(%d %d\n,i,j);
}
输出结果为:
i j
0 0
0 1
0 2
1 0
1 1
1 2
用for循环求1+2+……+100的和:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
sn+=i; /1+2+……+100/
printf(%d\n,sn);
}

二)、while循环
它的一般形式为:while(条件)语句;
while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续
执行循环程序外的后续语句。
例如:
#include stdio.h
main()
{
char c;
c=’\0’; /初始化c/
while(c!=’\n’) /回车结束循环/
c=getche(); /带回显的从键盘接收字符/
}
上例中,while循环是以检查c是否为回车符开始,因其事先被初始化为空,所
以条件为真,进入循环等待键盘输入字符;一旦输入回车,则c=’\n’,条件为
假,循环便告结束。与for循环一样,while循环总是在循环的头部检验条件,
这就意味着循环可能什么也不执行就退出。
注意:
(1).在while循环体内也允许空语句。
例如:
while((c=getche())!=’\n’);
这个循环直到键入回车为止。
(2).可以有多层循环嵌套。
(3).语句可以是语句体, 此时必须用{和}括起来。
用while循环求1+2+……+100的和:
main()
{
int sn=0,i=0;
while(++i<=100)
sn+=i; /求1+2+……+100/
printf(%d\n,sn);
}
三)、do–while循环
它的一般格式为:
do
{
语句块;
}
while(条件);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否
为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至
少要执行一次循环语句。
同样当有许多语句参加循环时,要用{和}把它们括起来。
用do–while循环求1+2+……+100的和:
main()
{
int sn=0,i=1;
do
sn+=i; /求1+2+……+100/
while(++i<=100);
printf(%d\n,sn);
}
从上面三个程序看出,使用for,while和do–while求解同样的问题,基本思
路都差不多,只是在第一次计算时,注意初值。
(一)、break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时
,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将
成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时
的例子中碰到,这里不再举例。
当break语句用于do-while、for、while循环语句中时,可使程序终止循环而
执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便
跳出循环。
例如:
main()
{
int sn=0,i;
for(i=1;i<=100;i++)
{
if(i==51) break; /如果i等于51,则跳出循环/
sn+=i; /1+2+……+50/
}
printf(%d\n,sn);
}
可以看出,最终的结果是1+2+……+50。因为在i等于51的时候,就跳出循环了
。自己写写怎样在while和do–while循环中增加break语句。
注意:

  1. break语句对if-else的条件语句不起作用。
  2. 在多层循环中,一个break语句只向外跳一层。
    例如:
    main()
    {
    int i,j;
    printf(i j\n);
    for(i=0;i<2;i++)
    for(j=0;j<3;j++)
    {
    if(j2) break;
    printf(%d %d\n,i,j);
    }
    }
    输出结果为:
    i j
    0 0
    0 1
    1 0
    1 1
    当i
    0,j2时,执行break语句,跳出到外层的循环,i变为1。
    (二)、continue语句
    continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。
    continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起
    使用,用来加速循环。
    例如:
    main()
    {
    int sn=0,i;
    for(i=1;i<=100;i++)
    {
    if(i
    51) continue; /如果i等于51,则结束本次循环/
    sn+=i; /1+2+……+50+52+……+100/
    }
    printf(%d\n,sn);
    }
    从程序中可以看出,continue语句只是当前的值没有执行,也就是说当前的值
    跳过去了,接着执行下次循环。
    main()
    {
    int i,j;
    printf(i j\n);
    for(i=0;i<2;i++)
    for(j=0;j<3;j++)
    {
    if(j==1) continue;
    printf(%d %d\n,i,j);
    }
    }
    输出结果为:
    i j
    0 0
    0 2
    1 0
    1 2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值