zoukankan      html  css  js  c++  java
  • C语言-循环结构及break、continue

    循环结构

    --1-- 结构循环
    1.1 while循环
    1.2 dowhile循环
    1.3 for循环
    --2-- break和continue
    2.1 break关键字
    2.2 continue关键字
    -------------------------- 

    【写在开头:】

    生活中的循环:

    C语言中的循环:

    循环结构是程序中一种很重要的结构。其特点是,在给定的条件成立时,反复执行某程序段,直到条件不成立为止。

    C语言中提供了多种循环语句:

    1)goto语句和if构成循环(已经被摒弃)

    2while语句

    3do-while语句

    4for语句

    构成循环的几个条件:

    一般来说一个循环需要以下几部分构成

    1)循环控制条件

      循环退出主要依据

    2)循环体

      循环过程中重复执行的代码块。

    3)能够让循环结束的语句(递增、递减、真、假等)

    --1-- 结构循环

    1.1 while循环

    1)语法格式

      while(条件)

      {

      语句1

      语句2

      …

      语句n;

      }

    2)while循环执行特点

    当条件成立时一直执行程序体。

    3)示例

    从键盘上输入一个数n,计算1+2+3…+n的值。

        //定义变量
        int i = 1, n = 0, sum = 0;
    
        //接受键盘输入n并赋值给变量n
        printf("请输入累加上限:
    ");
        scanf("%d",&n);
    
        //while循环条件小于n
        while (i <= n) {
            sum += i;   //累加
            i++;
        }
    
        printf("从1累加到%d的值是:%d
    ",n,sum);

    4)补充

    scanf的原理:如果输入缓冲区不为空,则不会让用户再次输入内容,而直接冲缓冲区中继续获取。

    最简单的死循环:while(1);

     

    1.2 dowhile循环

    1)语法格式

      do{

      语句1

      语句2

      …

      语句n;

      }while(条件);

    2)do…while循环的特点:

    不管while中的条件是否成立,至少会执行一次循环体。 

    3)whiledowhile的循环类型不同

    while循环是一个当型循环,当条件满足时再执行循环体;

    dowhile循环是直到型循环,先执行循环体,再判断条件,直到条件为假时结束。

    4)示例

        int x = -3;
        do{
            printf("do...while
    ");
            x--;
        }while (x > 0); //do...while循环 无论条件是否满足,循环体都会执行一次

    1.3 for循环

    1)for语法格式

    C语言中for语句的使用最为灵活,完全可以代替while语句

    一般形式:

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

      语句块;

      } 

    2)for循环执行过程

    执行顺序:

      1)先求表达式1,给i初始化

      2)求解表达式2,若其值为真(非0,则执行for语句中指定的内嵌语句-->表达式3

      3)执行表达式4

      -->循环完一遍之后执行第二步,再依次往下

        注意:步骤1)在整个循环中只执行一次

    3)for循环的其他形式

      1)表达式1省略

        int i = 0;
        for (; i < 5; i++){
            printf("%d", i);
        }

      2)表达式13省略

        int i = 0;
        for (; i < 5;){
            
            printf("%d", i);
            
            i++;
            
        }

      3)表达式123省略

        int i = 0;
    
        for(;;){
            
            if (i < 5){
                
                printf("%d", i);
                
                i++;
                
            } else{
                
                break;
                
            }
            
        }

       4)最简单的for循环

      for (; ; );

      5)for循环的嵌套使用

      打印图形

      * * * * *

      * * * * *

      * * * * *

      * * * * *

      * * * * *

      分析:

    内层循环打印一行,外层循环5次打印5行

        for (int j = 0; j < 5; j++) {
            for (int i = 0; i < 5; i++) { //内层打印行
                printf("*	");
            }
            printf("
    ");
        }

     

    --2-- break和continue

    2.1 break关键字

    break和continue都可以用在循环中,用来跳出循环/结束循环

    break用法

    break语句通常用在循环和开关语句中。

    注意:

    1)break对if-else不起作用。

    2)break用于跳出当前循环(结束当前循环)。

    3)break影响的是当前的这个循环,对外层循环不起作用

    示例

    计算r=1r=10时圆的面积,直到面积大于100为止

    分析:

    圆的面积 area = 3.14 * r * r;

        //计算r=1到r=10时圆的面积,直到面积大于100为止
        for (int r = 1; r <= 10; r++) {
            double area = 3.14 * r * r;
            if (area > 100) {
                break; //面积大于100 结束循环
            }
            
            printf("area = %.2f
    ", area);
        }

    2.2 continue关键字

    continue用于结束本次循环,继续下次循环

    continue只用在for、while、do-while等循环体中,常与if语句一起使用,用来加速循环

    示例

    100-200之间不能被3整除的数输出。

    分析:

    被3整除时结束本次循环进入下一次循环

        //把100-200之间不能被3整除的数输出
        for (int i = 100; i <= 200; i++) {
            
            if (i % 3 == 0) {
                continue; //整除则跳出本次循环
            }
            printf("i = %d
    ", i);
        }

     总结:

    break跳出循环后循环就结束了,而continue跳出循环后还继续下一次循环。这就是break和continue最大的区别。

    【写在结尾:】

    『下雨了,滴答滴答的...从小最喜欢的,就是听雨的声音...』

    ☂业精于勤,荒于嬉;行成于思,毁于随。☂
  • 相关阅读:
    【ARTS】打卡第七周
    【ARTS】打卡第六周
    【ARTS】打卡第五周
    【leetcode】 438. Find All Anagrams in a String
    【ARTS】打卡第四周
    【ARTS】打卡第三周
    【leetcode】 11. Container With Most Water
    【ARTS】打卡第二周
    【ARTS】打卡第一周
    深度VS广度——谈谈对测试职业的一些思考
  • 原文地址:https://www.cnblogs.com/wang-biao/p/5658818.html
Copyright © 2011-2022 走看看