• C语言——流程控制


       

    流程控制内容主要由选择控制和循环控制组成。

    一、选择控制

           (一)if 选择结构

             1、if(表达式) 语句1;

             2、if(表达式) 语句1; else 语句2;

             3、if(表达式) {  }  “{}”为作用域,里面可以放多个满足条件的语句

             4、if-else if-else  只有一个表达式会被判断执行

            代码举例:

              

     1     int a = 6;
     2     
     3     if (a++ > 10) // a == 7
     4     {
     5         printf("A
    ");
     6     }
     7     else if (a++ > 5) // a == 8
     8     {
     9         printf("B
    ");
    10     }
    11     else if (a++ > 3) 
    12     {
    13         printf("C
    ");
    14     }
    15     else
    16     {
    17         printf("D
    ");
    18     }
    19     
    20     printf("a的值是%d
    ", a);

           5、常见错误陷阱

               

     1 比较大小时,常量值放左边,变量放右边
     2     //if (a = 0)
     3     if (0 == a)
     4     {
     5         printf("a等于0
    ");
     6     }
     7     else
     8     {
     9         printf("a不等于0
    ");
    10     }*/
    11     
    12     /*
    13     int a = 10;
    14     
    15      // 注意赋值运算符,不要写成两个=
    16     a = 15;
    17     
    18     printf("%d
    ", a);
    19      */
    20     
    21     /* if语句后面不要写;
    22     if ( 5>6 );
    23     {
    24         printf("A
    ");
    25     }*/
    26     
    27     
    28     /*
    29     if (10 > 6)
    30     {
    31         int a = 5;
    32     }
    33     
    34     printf("%d
    ", a);
    35      */
    36     
    37     // 下面的代码是错误的:作用域不明确
    38     if (10 > 6)
    39         int a = 5;
    40     // 如果要在if后面的语句中定义新的变量,必须用大括号{}
    41     //printf("%d
    ", a);
    42     

         (二)选择结构-switch

             1、使用格式: switch(表达式) { case 数值1: break; … default: break;}       

     1 #include <stdio.h>
     2 
     3 
     4 int main()
     5 {
     6     //int a = 10;
     7     // break:退出整个switch语句
     8     // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止
     9     
    10     int b = 10;
    11     
    12     switch (a)
    13     {
    14         case 10:
    15             printf("A
    ");
    16             b++;
    17         case 5:
    18             printf("B
    ");
    19             b++;
    20         case 0:
    21             printf("C
    ");
    22             b++;
    23             break;
    24         default:
    25             printf("D
    ");
    26             break;
    27     }
    28     
    29     printf("b的值是%d
    ", b);
    30     
    31     char c = '+';
    32     int a = 10;
    33     int b = 20;
    34     // 如果要在case后面定义新的变量,必须用大括号{}包住
    35     switch (c) {
    36         case '+':
    37         {
    38             int sum = a + b;
    39             printf("和是%d
    ", sum);
    40             break;
    41         }
    42             
    43         case '-':
    44         {
    45             int minus = a - b;
    46             printf("差是%d
    ", minus);
    47             break;
    48         }
    49     }
    50     
    51     return 0;
    52 }

    二、循环控制

        (一) While循环结构

               1、while (条件){  循环体 }

                 运行原理:

                 ①如果一开始条件就不成立,永远不会执行循环体

                 ②如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......

              2、break    直接结束整个while循环

              3、continue   结束当前的循环体,进入下一次循环体的执行

     1 //代码举例
     2    
     3 #include <stdio.h>
     4 
     5 int main()
     6 {
     7     // 1.先确定需要重复执行的操作
     8     
     9     // 2.再确定约束条件
    10     
    11     // 定义一个变量记录做的次数
    12     int count = 0;
    13     
    14 
    15     while (count < 50)
    16     {
    17         ++count;
    18         
    19         printf("做第%d次俯卧撑
    ", count);
    20         
    21         if (count == 20)
    22         {
    23             break;
    24         }
    25     }
    26     
    27     
    28     return 0;
    29 }

      (二)do-while 循环

           最少执行一次循环体

          do {

                  } while(条件);

             while和do-while的区别

               1.很多情况下,while和do while可以互换

               2.while特点:如果一开始的条件不成立,永远不会执行循环体

     do while特点:不管一开始的条件是否成立,至少会执行一次循环体

               

     1 //代码举例
     2  #include <stdio.h>
     3 
     4 int main()
     5 {
     6     int i = 0;
     7     
     8     /*
     9     while (i<0)
    10     {
    11         i++; // 5
    12     }*/
    13     
    14     do {
    15         i++; // 5
    16     } while (i<0);
    17     
    18     printf("i=%d
    ", i);
    19 
    20     return 0;
    21 }

       (三) for 循环结构

            

          for (语句1; 条件; 语句2)

        {

             循环体

            }

           语句1:初始化语句

           语句2:增量语句(执行完循环体后再执行的语句)

           1.  for一开始就会执行一次语句1(整个for循环只会执行一次)

           2.  判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

     1 //代码举例
     2   #include <stdio.h>
     3 int main()
     4 {
     5    
     6     for (int count = 0; count < 50; count++)
     7     {
     8         printf("第%d次输出
    ",count);
     9     }
    10     
    11     return 0;
    12 }

    三、break 和 continue

        (一)break:

          1.使用场合

           ① switch语句:退出整个switch语句

           ② 循环结构:退出整个循环语句

           * while

           * do while

           * for

          2.注意点

           只对最近的循环结构有效

       (二)continue

         1.使用场合

          循环结构:结束当前这次的循环体,进入下一次循环体

         * while

         * do while

         * for

         2.注意点

         只对最近的循环结构有效

         

       

  • 相关阅读:
    django控制台输出sql日志
    Find概述
    命令大全
    京东智联云在 Serverless 的探索
    如何优雅地部署一个 Serverless Next.js 应用
    腾讯云 Serverless 保障《创造营》硬糖少女 C 位出道
    Serverless 应用实践及典型案例解析
    LeetCode 数组:62. 不同路径(动态规划 带记忆的递归)
    LeetCode 数组:56.合并区间(数组的自带排序函数 区间合并问题)
    LeetCode 数组:162. 寻找峰值(二分法)
  • 原文地址:https://www.cnblogs.com/gaizuojia/p/4356308.html
Copyright © 2020-2023  润新知