switch case判断字符串switch语句,划分成绩等级;switchcase;
switch语句是⼀种多分⽀选择结构。
switch 分⽀选择语句就像⼀个⼈⼿上拿着⼀个⼀个号码,只有出现能另外⼀个匹配的号码才能进⾏下⼀步操作,注意与 if 语句区分开,if 是判断真假,只存在真和假两种状态,⽽switch 可以有多种选择,通俗的讲,switch是多个 if 语句组合在⼀起。
其⼀般形式如下:
switch(表达式)
{
case常量表达式1:语句1
case常量表达式2:语句2
//……
//……
case常量表达式 n-1:语句 n-1
default:语句n
}
注意要区分其差别:if (表达式)中存在 1 / 0 两种状态,if(1) 则执⾏{...}; if(0) 则不执⾏{...}。
switch(表达式)是⼀种状态,这种状态需要与switch (表达式){ case 表达式 ....;}中的case(表达式)中的表达式匹配才有意义,case(表达式)中各表达式的值必须不同,且switch (表达式){ case 表达式 ....;}中switch(表达式)的表达式值与 case 表达式 的表达式值相等时,相当于if (1)的状态,则执⾏ case 常量表达式: 语句中语句;表达式的值不匹配则为 if(0)的状态,不执⾏,case均不满⾜则执⾏default; 语句;;default语句与各case在先后顺序上并不冲突,出现次序不影响结果。
eg:
case'A':cout<<"this is A\n";
case'B': cout<<"this is 65\n";//错误,A 等于ASCII码的 65
swtich(a)
{
case3: b=1;break;
default: b=2;break;//正确,各个case 与 default 的出现次序并不影响
case1: b=3;break;
}
注意:
**switch(表达式)中的表达式必须是”整形“,**也就是说可以是 int 型变量、char 型变量,也可以直接是整数(包括负整数)或字符常量,实数,float 型变量、double 型变量、⼩数常量通通不⾏,全部都是语法错误。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<strings.h>
int main()
{
float n;//分数可以为整数,也可以存在⼩数;
scanf("%f",&n);//键盘获取分数;
if(n >=0&& n <=100)//限制分数范围,俗称检查;
{
int d=n/10;//强制转换,确定选项为“整数型”
switch(d)//给出选项,d 这个表达式的值与后⾯{...}中的 case 表达式匹配,相等则执⾏,不等则跳过;{
case10:printf("AAA\n");break;//在此处进⾏ break; 是因为成绩划分档次,每⼀个档次都是单独;case9:printf("A\n");break;//break;执⾏后,执⾏划分档次后就不再执⾏ break;之后的语句;case8:p
rintf("B\n");break;
case7:printf("C\n");break;//注意:这⼉的 break; 与循环体中的 break; 区分开;
case6:printf("D\n");break;
default:printf("不及格\n");
}
}
else//与 if 呼应,保证成绩有效;
{
printf("switch waibu\n");
}
return0;
}
现在我们执⾏程序,输⼊分数:85
总结:switch 分⽀语句是⼀种多分⽀选择结构,不是条件性语句,也不是循环语句。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论