标签:can 顺序 ssi switch语句 https 变量定义 实训 lan 整理
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; } }
标签:can 顺序 ssi switch语句 https 变量定义 实训 lan 整理
原文地址:https://www.cnblogs.com/yhc99/p/9053935.html