switch语句

        if语句会根据对某个条件的判断结果,将程序的流程分为两支。而本章将要介绍的switch语句,则会将程序分为多个分支。

        首先我们来看看下面的代码。              

\\显示所输入的整数除以3的余数
#include <stdio.h>
#int main()
{
    int num=0;                                运行结果1
    printf("请输入一个整数:");                请输入一个整数:6          
    scanf("%d",&num);                         该数能被3整除。
    if(num%3==1)
        puts("该数除以3余1。");
    if(num%3==2)                              运行结果2
        puts("该数除以3余2。");                请输入一个整数:35
    else                                      该数除以3余2。               
        puts("改数能被3整除。");
    return 0;
}
    

         本代码使用了两次计算num除以3的余数的表达式num%3,多次输入同一个表达式,容易造成输入错误。不仅如此,同一个除法执行两次也会使程序冗长。

        此时,如果使用switch语句的话,程序就变得简单得多了。让我们来看看switch语句写出上面这个结果的代码。

\\显示所输入的整数除以3的余数(switch)
#include <stdio.h>
#int main()
{
    int num=0;
    printf("请输入一个整数:");
    scanf("%d",&num);                            运行结果1
    switch(no%3);                                请输入一个整数:37
     case 0:put("该数能被3整除。);                该数除以3余1。 
     break;
     case 1:put("该数除以3余1。); 
     break;
     case 2:put("该数除以3余2。); 
     break;
    return 0;
}

       我们可以看到使用switch语句,简短了很多。我们可以看到上述代码中还用到了casebreak这两个标识符。下面我们来介绍一下它们。

        像“case 1:”这样用来表示程序跳转到标识成为标签。

        ▶注意:1和:中间有没有空格都可以。但是case和1之前必须有空格,不能写成case1。

        标签的值必须是常量,不可为变量。另外,不可以多个标签都是同一个值。程序跳到该标签后会执行其后面的语句。

        当程序遇到break语句时,switch语句执行结束。

        我们很好理解,break的英文意思有“打破”“脱离”的意思。当执行到位break语句后,程序就会跳出将它围住的switch语句。

        在当没有遇到break语句时,程序就会一直走下去,知道遇到break语句或者switch语句结束。

        当控制表达式的判断结果与任何一个case都不一致的时候,程序就会跳转到“default :”继续执行。

        下面我们来写一串代码,再输入一些值你就能大致明白switch语句的执行流程了。

        

\\确认switch语句的执行流程
#include <stdio.h>
int main()                                              运行结果1        运行结果5
{                                                       整数:1           整数:6 
    int num=0;                                          A                E
    printf("整数:");                                    B
    scanf("%d",&num);
    switch(num)                                         运行结果2
      {                                                 整数:2
        case 1: puts("A");    puts("B");    break;      C 
        case 2: puts("C");-------注意没有break语句。      D  
        case 5: puts("D");    break;
        case 6: -----------------注意没有break语句。      运行结果3        
        case 7: puts("E");    break;                     整数:3   
        default : puts("F");  break;                     F   
      }
    return 0;                                            运行结果4        
}                                                        整数:5
                                                         D   
   

        通过上述代码,你应该能理解switch语句的执行流程了。最后还有一些注意事项:1.switch的执行语句只能是整数。 2.注意break语句的书写和放置,不要忘记书写break语句。3.通过单一表达式来控制程序流程分支的时候,使用switch语句的效果要比if语句好。

        本节就结束啦,下面自己去尝试谢谢代码吧。

     

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值