switch语句用法规则

switch也是c语言中比较常见的一种函数,前面学这个的时候只是记了一个大概的用法,也没怎么练习

今天上c语言实训课的时候被同学问了一个关于switch的题目,我选错了。所以回来重新整理一下这个函数的要点。

先来看一下今天他问那个题目:

例题:若有一下变量定义:

float x; int a, b;

则正确的switch语句是( )。

A.switch(x){            B.switch(a){            C.switch(b){            D.switch(a+b){

case 1.0:printf("*\n");        case 1 printf("*\n");         case 1:printf("*\n");        case 1:printf("*\n");

case 2.0:printf("**\n");        case 2 printf("**\n");         default:printf("\n");        case 2:printf("**\n");

}                 }                   case 1.0+2:printf("");         default:printf("\n");

                                    }                  }

这题答案: D

A.错在switch语句中只能用int,char型变量,对于其他的变量只能用else if语句。

B.case 后面的变量要有 冒号“ :”。

C.同A一样的错误。

整理一下,switch用法

  • case后面只能跟一个值(加冒号:),而不能是一个表达式 

  • switch(表达式) 后面没有分号(;)

  • {}前后没有分号(;)

  • default语句可以出现在任何位置,但建议写到最后,表示除去case匹配之外的其它情况。也可以没有default语句

switch语句规则:

  • case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。 

  • case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

  • 如果两个case语句间没有break,则执行完匹配的case语句后,会顺序执行下面的语句,直到遇到break语句或switch结束

  • 连续的两个case语句表示,这两个case是同一种情况

再来一段代码练习练习

//给出一百分制成绩,要求输出成绩等级‘A’、’B’、‘C’、‘D’、‘E’。90分以上为‘A’ ,80~89分为’B’ ,70~79分为‘C’...
#include <stdio.h>
main()
{
    int grade;
    printf("请输入你的成绩:");
    scanf("%d",&grade);
    switch(grade/10)    ////除10,把题目给的分数区间转化为一个数,方便作为选择  
    {
case 10:        //在题目中,100也算90分以上都算A,所以不需要再对它进行输出了  
        case 9:printf("A\n");break;
        case 8:printf("B\n");break;
        case 7:printf("C\n");break;
        case 6:printf("D\n");break;
        default:printf("E");break;
    }
}

猜你喜欢

转载自www.cnblogs.com/yhc99/p/9053935.html