• 08-C语言循环


    目录:

    一、for循环

    二、break,continue

    三、循环嵌套

    四、while

    五、do while

    六、三个循环的对比

    七、空语句

    回到顶部

    一、for循环

    标识每次循环,循环终止条件,循环间的规律

           签到            毕业               天

    for 变量=1       变量<100        变量++

    int i = 0;

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

    1.循环就是重复执行循环体(语句、语句块组成),在C语言中,没一个循环都有一个控制表达式(终止循环的条件),每次循环的时候,都要向控制表达式求值,如果表达式的值为真1,那么继续循环,如果为假,终止循环。

    2.c语言中使用循环语句来反复执行特定的代码段,在c语言中循环有三种表达方式:for/while/do while

    3.for循环语法格式:

    for(表达式1;表达式2;表达式3){

           循环体;(一条或多条语句)

    }

    表达式1:用来标识每一次循环,初始值,

    表达式2:判断循环是否执行的控制语句,

    表达式3:每次循环之间的规律,步长

    4.循环的执行顺序,

    第一次执行的时候,

    执行表达式1 -> 表达式2(真)-> 循环体

    执行表达式1 -> 表达式2(假)-> 终止循环

    第二次执行的时候,

    执行表达式3 -> 表达式2(真)-> 循环体

    执行表达式3 -> 表达式2(假)-> 终止循环

    第n次

    执行表达式3 -> 表达式2(真)-> 循环体

    执行表达式3 -> 表达式2(假)-> 终止循环

    求:1~100的和

    练习:使用循环输入四个数,求最大值、最小值、和。

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int i = 0;
     6     //i=1:循环的标识
     7     //i<=100:终止条件
     8     //i++:循环的规律
     9     for(i = 1; i <= 100; i++){
    10         printf("%d ",i);
    11     }
    12     printf("
    ");
    13     
    14     //求1~100的和
    15     int sum = 0;
    16     for(i = 1;i <= 100;i++){
    17         sum += i;
    18     }
    19     printf("1~100的和是:%d
    ",sum);
    20     
    21     //使用循环输入四个数,求最大值、最小值、和。
    22     int num = 0,sum2 = 0,max = 0,min = 100;
    23     for(i = 1; i <= 4; i++){
    24         printf("输入第%d个数字:
    ",i);
    25         scanf("%d",&num);
    26         if(num > max){
    27             max = num;
    28         }
    29         if(num < min){
    30             min = num;
    31         }
    32         sum2 += num;
    33     }
    34     printf("max:%d,min:%d,sum2:%d
    ",max,min,sum2);
    35     
    36     return 0;
    37 }

    练习:输入10个数,求最大值、最小值、和、差、积、商。

    练习:输出100内的奇数,不能被2整除

    练习:输出100内的偶数,能被2这出

     1 #include <stdio.h>
     2 
     3 //练习:输入10个数,求最大值、最小值、和、差、积、商。
     4 void test1()
     5 {
     6     int num = 0,sum = 0,ji = 1,cha = 0,shang = 1;
     7     int i = 0,max = 0,min = 100;
     8     for( i = 1; i <= 10; i++){
     9         printf("输入第%d个数:
    ",i);
    10         scanf("%d",&num);
    11         if(num > max){
    12             max = num;
    13         }
    14         if(num < min){
    15             min = num;
    16         }
    17         sum += num;
    18         cha -= num;
    19         ji *= num;
    20         shang /= num;
    21     }
    22     printf("max:%d,min:%d,sum:%d,ji:%d,cha:%d,shang:%d
    ",max,min,sum,ji,cha,shang);
    23 }
    24 
    25 //练习:输出100内的奇数,不能被2整除
    26 void test2()
    27 {
    28     int i = 0;
    29     //不能被2整除
    30     for(i = 1; i <=100; i++){
    31         if(i % 2 != 0){
    32             printf("%d ",i);
    33         }
    34     }
    35 }
    36 
    37 //练习:输出100内的偶数,能被2这出
    38 void test3()
    39 {
    40     int i = 0;
    41     for(i = 1; i <=100; i++){
    42         if(i % 2 == 0){
    43             printf("%d ",i);
    44         }
    45     }
    46     printf("
    ");
    47 }
    48 int main()
    49 {
    50     test1();
    51     //test2();
    52     //test3();
    53     return 0;
    54 }

    5.for(;;)这样写编译不报错,但;号不能省略,这是个死循环,Ctrl + c 终止循环。

    回到顶部

    二、break、continue

    break关键字,不但可以终止switch语句,也可以终止for循环语句。

    continue关键字,可以终止当次循环,继续下一次循环。

    练习:输入一个数,得到数的长度(位数),如1234,长度就是4,

    #include <stdio.h>
    
    int main()
    {
        int num = 0,i = 0,length = 0;
        printf("输入一个数:
    ");
        scanf("%d",&num);
        printf("%d",num);
        for(i = 0; i <= 100; i++){
            length++;
            num /= 10;
            if(num == 0){
                break;
            }
        }
        printf("长度是:%d
    ",length);
        return 0;
    }

    回到顶部

    三、循环嵌套(多重循环)

    for(){

           for(){

                  ...

           }

    }

    #include <stdio.h>
    
    int main()
    {
        int i = 0,j = 0;
        for(i = 1; i <= 5; i++){
            for(j = 1; j <= 5; j++){
                printf("%d%d ",i,j);
            }
            printf("
    ",i,j);
        }
        return 0;
    }

    1.如果两重循环,外面的循环执行一次,里面的循环执行一遍,

    2.外面的循环和行有关系,里面的循环和列有关系

    练习:

    1.*****

    2.         3.            4.

    *          *            *****

    **        ***         ***

    ***      *****      *

    ****    *******

    *****

     1 #include <stdio.h>
     2 
     3 int main()
     4 {
     5     int i = 0,j = 0;
     6     //打印*****
     7     for(i = 1; i <= 5; i++){
     8         printf("*");
     9     }
    10     printf("
    ");
    11     /*
    12      2.         3.          4.
    13      *          *            *****
    14      **         ***          ***
    15      ***        *****        *
    16      ****       *******
    17      *****
    18      */
    19     //2.
    20     for(i = 1; i <= 5; i++){
    21         for(j = 1; j <= i; j++){
    22             printf("*");
    23         }
    24         printf("
    ");
    25     }
    26     printf("
    ");
    27     //3.
    28     for(i = 1; i <= 4; i++){
    29         for(j = 1; j <= i * 2 - 1; j++){
    30             printf("*");
    31         }
    32         printf("
    ");
    33     }
    34     printf("
    ");
    35     //4.
    36     for(i = 3; i >= 1; i--){
    37         for(j = 1; j <= i * 2 - 1; j++){
    38             printf("*");
    39         }
    40         printf("
    ");
    41     }
    42     printf("
    ");
    43     //4. (另一种写法)
    44     int rows = 3;
    45     for(i = 1; i <= 3; i++){
    46         for(j = 1; j <= 2 * (rows - i) + 1; j++){
    47             printf("*");
    48         }
    49         printf("
    ");
    50     }
    51     return 0;
    52 }

    九九乘法表。

    1*1=1

    1*2=2  2*2=4

    1*3=3  2*3=6  3*3=9

    .........

    #include <stdio.h>
    
    int main()
    {
        int i = 0,j = 0;
        for(i = 1;i <= 9;i++){
            for(j = 1;j <= i; j++){
                printf("%d*%d=%d	",j,i,i*j);
            }
            printf("
    ");
        }
        return 0;
    }

    回到顶部

    四、while

    1.while循环与for循环完全互通,除了语法格式稍有区别,其工作原理,工资方式一样。

    2.语法格式;

    表达式1;

    while(表达式2){

                  循环体;

                  表达式3;

    }

    3.执行顺序

    第一次执行循环的时候,

    表达式1 -> 表达式2(真) -> 循环体 -> 表达式3

    表达式1 -> 表达式2(假) -> 终止循环

    第二次循环的时候,

    表达式2(真)-> 循环体 -> 表达式3

    表达式2(假)-> 终止循环

    作业:重构for循环练习

    #include <stdio.h>
    
    int main()
    {
        int i = 1;
        while(i < 11){
            printf("i:%d
    ",i);
            i++;
        }
        return 0;
    }

    回到顶部

    五、do while

    先执行循环体,在进行判断。do while与for、while最大的不同,就算条件不成立,至少会执行一次

    语法格式:

    表达式1;

    do{

                  循环体;

                  表达式3;

    }while(表达式2);

    执行顺序

    第一次执行的时候

    表达式1 -> 循环体 -> 表达式3 -> 表达式2(真)-> 继续循环

    表达式1 -> 循环体 -> 表达式3 -> 表达式2(假)-> 终止循环

    第二次循环的时候

    循环体 -> 表达式3 -> 表达式2(真)-> 继续循环

    循环体 -> 表达式3 -> 表达式2(假)-> 终止循环

    作业:重构for循环的练习

    #include <stdio.h>
    
    int main()
    {
        int i = 1;
        do{
            //i++;放在这里结果会出现改变
            printf("i:%d
    ",i);
            i++;
        }while(i <= 10);
        return 0;
    }

    回到顶部

    六、三个循环的对比

    1.可以控制循环的范围使用for循环

    2.关注循环规则使用while循环

    2.第一次不需要进行判断的时候do...while

    回到顶部

    七、空语句

    空语句常用来编写空循环体的循环,

    c程序习惯性的把空语句单独放一行,

    如果循环体只有一行,可以省略{}

  • 相关阅读:
    SAP 关于ALV 双击 打开其它事务码
    记一次PGSQL数据库恢复过程
    SAP 供应商主数据维护(字段示例)
    SAP 高仿 CKM3 物料成本价格分析报表SQL
    SAP scc4更改设置 (不允许更改资源库和跨客户端定)
    SAP 主数据 查重常用SQL
    SAP S4/HANA 连接SQL SERVER 数据库
    SAP VBKD业务表的情况处理
    SAP 物料主数据维护说明
    SAP CO成本控制 相关表
  • 原文地址:https://www.cnblogs.com/yangmx/p/3462342.html
Copyright © 2020-2023  润新知