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("\n");

13     

14     //求1~100的和

15     int sum = 0;

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

17         sum += i;

18     }

19     printf("1~100的和是:%d\n",sum);

20     

21     //使用循环输入四个数,求最大值、最小值、和。

22     int num = 0,sum2 = 0,max = 0,min = 100;

23     for(i = 1; i <= 4; i++){

24         printf("输入第%d个数字:\n",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\n",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个数:\n",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\n",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("\n");

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("输入一个数:\n");

    scanf("%d",&num);

    printf("%d",num);

    for(i = 0; i <= 100; i++){

        length++;

        num /= 10;

        if(num == 0){

            break;

        }

    }

    printf("长度是:%d\n",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("\n",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("\n");

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("\n");

25     }

26     printf("\n");

27     //3.

28     for(i = 1; i <= 4; i++){

29         for(j = 1; j <= i * 2 - 1; j++){

30             printf("*");

31         }

32         printf("\n");

33     }

34     printf("\n");

35     //4.

36     for(i = 3; i >= 1; i--){

37         for(j = 1; j <= i * 2 - 1; j++){

38             printf("*");

39         }

40         printf("\n");

41     }

42     printf("\n");

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("\n");

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\t",j,i,i*j);

        }

        printf("\n");

    }

    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\n",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\n",i);

        i++;

    }while(i <= 10);

    return 0;

}

回到顶部

六、三个循环的对比

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

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

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

回到顶部

七、空语句

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

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

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

你可能感兴趣的:(C语言)