C语言中的循环结构

第三天我们学习了C语言中的循环结构。

1.C语言中一共有三种基本结构:顺序结构,分支结构,循环结构。

2.循环结构指在满足特定条件下,反复执行某程序段。

3.循环结构中,有while循环,do..while循环和for循环。

4.while循环的格式:

while (条件表达式) {

                语句;

}

//如果条件表达式为真时,执行循环体;否则,循环停止。

//注意:循环变量要保证可以执行到,否则进入死循环。

例题:while打印出1~100之间7的倍数。 

   // 定义一个int类型的变量,并初始化循环变量

    int i = 1;

    // 开始循环,循环条件为100内的整数

    while (i <= 100) {

        // 如果满足条件,执行括号内的语句,如果不满足,跳出循环

        // 需要进行判断,如果为7的倍数才打印

        if(i % 7 == 0){

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

        }

        // 需要注意,循环增量务必保证可以执行到,否则进入死循环

        i++;

        // 语句进行到这里,下面应该执行的是返回到条件表达式而不是直接退出循环

    }


5.随机数的使用:arc4random()

测试随机数,arc4random()返回一个unsigned int类型的随机数

    unsigned int r = arc4random();

    // 无符号整型需要用%u作为转义字符

    printf("%u\n", r);

如果想要指定范围内的随机数,则公式:arc4random() % (最大值 - 最小值 + 1) + 最小值;


例题1:打印10个随机数。

    // 循环变量习惯从0开始

    int i = 0;

    // 0开始可以很直观的看出循环次数,并且数组也是从0开始

    while(i < 10){

        //需要注意不要把arc4random()写在循环外

        int r = arc4random() % (35 - 15 + 1) + 15;

        printf("%d ", r);

        i++;

    }

    // 最后加个换行,让控制台更整齐

    printf("\n");


例题2:打印n个10-30的随机数,并输出最大值。

    printf("请输入n的值:");

    // 初始化循环变量以及循环次数,以及用来保存最大值的信息

    int i = 0, n = 0, max = 0;

    // 输入n的值

    scanf("%d", &n);

    

    // 循环开始,循环次数为n

    while(i < n){

        // 随机生成10-30范围的随机数

        int r = arc4random() % (70 - 30 + 1) + 30;

        // 用新随机出现的数值与当前最大值比较,如果最大值小于新值,则替换成最大值

        max = max > r ? max : r;

        // 需要注意,不要在循环内输出最大值,要在计算之后一次打印(循环外)

        printf("%d ", r);

        // 循环变量不能忘记

        i++;

    }

    // 注意美观

    printf("\n");

    // 输出最大值

    printf("max = %d\n", max);

6.break在switch语句中的作用:跳出switch语句。

break在循环体中的作用:跳出本层循环(通常与if连用)。

continue的作用:结束本次循环,继续下一次循环(通常与if连用)。

7.do..while循环的格式:

do{

 语句;

}while(条件表达式);

//先执行循环体,再判断循环条件,直到循环条件不满足,循环结束。

8.for循环的格式:
for(循环变量初始化; 循环条件; 循环增量) {
        语句;
}
//循环条件为真时,执行循环体。

//for语句执行次序:1.循环变量初始化 2.循环条件->(条件满足才执行) 3.语句 4.循环增量->2.3.4->2.3.4->2(条件不满足)->退出


例题:打印1-100内7的倍数。

    //进入循环

    for (int i =1; i <= 100; i++) {

        // 判断是否为7的倍数

        if (i % 7 == 0) {

            // 输出i的值

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

        }

        // 千万别写循环增量

    }

9.循环嵌套

例题:实现九九乘法表

    //实现乘法⼝口诀表。

    for (int i = 1; i < 10; i++) {

        for (int j = 1; j < 10; j++) {

            if (j <= i) {

                printf("%d * %d = %2d ", i, j, i*j);

            }

        }

        printf("\n");

    }

10.注意:
for最常⽤用,通常⽤用于知道循环次数的循环
while也很常⽤用,通常⽤用于不知道循环次数的循环 。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章