C

C 知识量:16 - 74 - 317

6.4 do while循环><

出口条件循环:do while- 6.4.1 -

while循环和for循环都是入口条件循环,即在每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次。示例:

#include <stdio.h>

int main(void) {
    int i = 0;
    do {
        printf("Working!i is :%d\n", i);
        i++;
    } while (i < 10);
    system("pause");
    return 0;
}

do while循环的通用形式为:

do
    statement
while (expression);

其中,statement可以是简单语句或复合语句。do while循环以分号结尾。do while循环适用于需要至少迭代一次的循环。

如何选择循环- 6.4.2 -

选择使用哪一种循环结构时,首先要确定需要入口条件循环还是出口条件循环。入口条件循环使用的比较多,因为:一是在执行循环前测试条件比安全,更符合人的思维方式;二是测试放在循环的开头,程序的可读性更高。三是许多情况下要求如果不满足条件,就直接跳过整个循环。出口条件循环一般适用于需要至少执行一次循环的情况。

对于使用入口条件循环的情况,for循环一般优于while循环,因为:一是结构比较紧凑,书写方便;二是循环条件集中设置,不容易出错。但是对于在判断条件中嵌入scanf()函数的情况,while循环更合适。

嵌套循环- 6.4.3 -

嵌套循环是指在一个循环内包含另一个循环。嵌套循环常用于按行和列显示数据,即一个循环处理一行中的所有列,另一个循环处理所有的行。示例:打印乘法口诀表。

#include <stdio.h>

int main(void) {
    int x, y;
    for (x = 1; x <= 9; x++) {
        for (y = 1; y <= x; y++) {
            printf("%d*%d=%-2d ", y, x, x * y);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

运行结果为:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20 5*5=25
1*6=6  2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7  2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8  2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9  2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

从以上代码中可以看出,外层循环可以影响内层循环。y代表第1个乘数,x代表第2个乘数,y的值不能大于x的值。