七、 循环语句和循环控制 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    Turbo C 2.0提供三种基本的循环语句: for语句、while语句和do-while语句,

七、 循环语句和循环控制

    一、循环语句

    (一)、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循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环,

电脑资料

七、 循环语句和循环控制》(https://www.unjs.com)。因此,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(j==2) break;

    printf(%d %d\n,i,j);

    }

    }

    输出结果为:

    i j

    0 0

    0 1

    1 0

    1 1

    当i==0,j==2时,执行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语句只是当前的值没有执行,也就是说当前的值跳过去了,接着执行下次循环。

最新文章