• 【学习笔记】【C语言】选择结构-switch


    1.用法

    switch(整型表达式)
    {
        case 数值1:
            语句1;
            break;
        case 数值2:
            语句2;
            break;
        ... ...
        case 数值n:
            语句n;
            break;
        default :
            语句n+1;
            break;
    }

    当整型表达式的值等于“数值1”时,就会执行“语句1”,后面的break表示退出整个switch语句,也就是直接跳到第16行代码;

    当整形表达式的值等于“数值2”时,就会执行“语句2”;后面的以此类推。如果在数值1~数值n中,没有一个值等于整型表达式的值,那么就会执行default中的语句n+1。

    由于所有的case后面都有个break,因此执行完任意一个case中的语句后,都会直接退出switch语句

    2.break的作用

    break关键字的作用是退出整个switch语句。默认的格式中,每个case后面都有个break,因此执行完case中的语句后,就会退出switch语句。

    1> 如果某个case后面没有break,意味着执行完这个case中的语句后,会按顺序执行后面所有case和default中的语句,直到遇到break为止。

    3.代码

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

    4.练习

     1 /*
     2  输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
     3  A:90~100 score/10 == 9、10
     4  B:80~89  score/10 == 8
     5  C:70~79  score/10 == 7
     6  D:60~69  score/10 == 6
     7  E:0~60   
     8  */
     9 
    10 #include <stdio.h>
    11 
    12 int main()
    13 {
    14     int score = 100;
    15     
    16     switch (score/10) {
    17         case 10: // 100
    18         case 9: // 90+
    19             printf("A
    ");
    20             break;
    21         case 8: // 80+
    22             printf("B
    ");
    23             break;
    24         case 7: // 70+
    25             printf("C
    ");
    26             break;
    27         case 6: // 60+
    28             printf("D
    ");
    29             break;
    30         default:
    31             printf("E
    ");
    32             break;
    33     }
    34     
    35     
    36     
    37     /*
    38      if和switch
    39      1> if语句能完成的功能,switch并不一定能完成
    40      int a = 10;
    41      if (a>100)
    42      {
    43      
    44      }
    45      
    46      2> 在有些情况下,if语句和switch语句可以互换
    47      
    48      3> switch能完成的功能,if语句都能完成
    49      */
    50     
    51     return 0;
    52 }
  • 相关阅读:
    检查两个单链表是否有交点
    检查链表中是否有环
    [转]根据二叉树的先序、中序遍历结果重建二叉树
    背包问题
    硬币问题
    部分和问题
    斐波那契计算
    最大公因数和最小共倍数
    计算一年中的第几天
    利用递归反向输出字符串
  • 原文地址:https://www.cnblogs.com/dssf/p/4567339.html
Copyright © 2020-2023  润新知