switch case语句
switch case格式:
switch(表达式)
{
case 常量表达式1:语句1;break;
case 常量表达式2:语句2;break;
…
case 常量表达式n:语句n;break;
default:语句n+1;break;
}
【注意】
switch 语句注意事项
switch后面的表达式,必须是整型、字符型、布尔型;
每一个case表达式的值必须互不相同;
各个case的顺序不影响执行结果;
只有遇到break语句才跳出;
多个case可以共用一组语句;
default语句可以省略;
case后面的子句可以不用{}括起来。
【例题】
01.使用switch,将输入的小写类型的char类型转为大写类型输出,只转换 a,b,c,d,e其他的输出“other”。
#include <iostream>
//01.使用switch,将输入的小写类型的char类型转为大写类型输出,只转换 a,b,c,d,e其他的输出“请输入正确的小写字母”
using namespace std;
int main() {
cout<<"字符大小写转换器"<<endl;
cout<<"请输入要转换的小写字母"<<endl;
char n;
cin>>n;
switch(n){
case 'a':n=n-32;break;
case 'b':n=n-32;break;
case 'c':n=n-32;break;
case 'd':n=n-32;break;
case 'e':n=n-32;break;
default:cout<<"请输入正确的小写字母";
}
cout<<n;
return 0;
}
02.对学生成绩大于60分的输出“合格”,低于60分的输出“不合格”。(输入的成绩不能大于100,提示成绩/60)。
#include <iostream>
//02.对学生成绩大于60分的输出“合格”,低于60分的输出“不合格”。(输入的成绩不能大于100,提示成绩/60)
using namespace std;
int main() {
cout<<"学生成绩判断器"<<endl;
cout<<"请输入学生成绩"<<endl;
int n;
cin>>n;
if(n<=100){
switch(n/10){
case 10:
case 9:
case 8:
case 7:
case 6:cout<<"合格";break;
default:cout<<"不合格"<<endl;
}
}
cout<<"输入分数有错误,总分为100";
return 0;
}
03.利用switch的穿透特性,根据指定月份,打印该月份所属的季节,3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季。
//03.利用switch的穿透特性,根据指定月份,
//打印该月份所属的季节,3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季。
#include<iostream>
using namespace std;
int main(){
int n;
cout<<"季节判断器"<<endl;
cout<<"请输入要进行判断的月份:"<<endl;
cin>>n;
switch(n){
case 12:cout<<"冬季";break;
case 1:cout<<"冬季";break;
case 2:cout<<"冬季";break;
case 3:cout<<"春季";break;
case 4:cout<<"春季";break;
case 5:cout<<"春季";break;
case 6:cout<<"夏季";break;
case 7:cout<<"夏季";break;
case 8:cout<<"夏季";break;
case 9:cout<<"秋季";break;
case 10:cout<<"秋季";break;
case 11:cout<<"秋季";break;
default:cout<<"输入错误";break;
}
return 0;
}
04.请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母, 如果第二个字母是a,则输出“星期六”。星期的英文单词如下表所示。
星期一 星期二 星期三 星期四 星期五 星期六 星期日
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
//04.请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,
//则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,
//如果第二个字母是a,则输出“星期六”。星期的英文单词如下表所示。
//
// 星期一 星期二 星期三 星期四 星期五 星期六 星期日
// Monday Tuesday Wednesday Thursday Friday Saturday Sunday
#include<iostream>
using namespace std;
int main(){
char a,b;
cout<<"星期几判断器"<<endl;
cout<<"请输入第一个字母(小写)"<<endl;
cin>>a;
a=a-32;
switch(a){
case 'M':cout<<"星期一";break;
case 'W':cout<<"星期三";break;
case 'F':cout<<"星期五";break;
case 'T':{
cout<<"请输入第二个字母(小写)"<<endl;
cin>>b;
if(b=='h'){
cout<<"星期四";
}else if(b=='u'){
cout<<"星期二";
}else {
cout<<"请输入有效数字";
}
break;
}
case 'S':{
cout<<"请输入第二个字母(小写)"<<endl;
cin>>b;
if(b=='a'){
cout<<"星期六";
}else if(b=='u'){
cout<<"星期日";
}else {
cout<<"请输入有效数字";
}
break;
}
default:cout<<"请输入有效数字"; ;break;
}
return 0;
}
05.做出一个计算器:支持加减乘除四种运算,
输入一行,数1,运算符,数2
然后输出
【特殊】:
除数为0:输出“你数学是体育老师教的吧!”
运算符不为±*/:输出“妈耶!!,有人不认识加减乘除符号”
//05.做出一个计算器:支持加减乘除四种运算,
//输入一行,数1,运算符,数2
//然后输出
//【特殊】:
//除数为0:输出“你数学是体育老师教的吧!”
//运算符不为+-*/:输出“妈耶!!,有人不认识加减乘除符号”
#include<iostream>
using namespace std;
int main(){
int x,y,sum=0;
char n;
cout<<"小山计算器"<<endl;
cout<<"请输入您想计算的数:(例如:12 + 13)"<<endl;
cin>>x>>n>>y;
switch(n){
case '+':sum=x+y;break;
case '-':sum=x-y;break;
case '*':sum=x*y;break;
case '/':{
if(y!=0){
sum=x/y;
}
cout<<"数学是体育老师教的吧!"<<endl;
break;
}
default:cout<<"妈耶!!有人不认识加减乘除运算符号";break;
}
cout<<x<<" "<<n<<" "<<y<<"= "<<sum;
return 0;
}
//进阶版:循环10次进行计算
#include <iostream>
using namespace std;
int main(){
int x,y,sum=0;
char n;
cout<<"小山计算器"<<endl;
cout<<"请输入您想计算的数:(例如:12 + 13)"<<endl;
for(int i=1;i<=10;i++){
cin>>x>>n>>y;
switch(n){
case '+':sum=x+y;break;
case '-':sum=x-y;break;
case '*':sum=x*y;break;
case '/':{
if(y!=0){
sum=x/y;
}
cout<<"数学是体育老师教的吧!"<<endl;
break;
}
default:cout<<"妈耶!!有人不认识加减乘除运算符号";break;
}
cout<<x<<" "<<n<<" "<<y<<"= "<<sum<<endl;
}
return 0;
}
//会员版:无限制计算
#include <iostream>
using namespace std;
int main(){
int x,y,sum=0;
char n;
cout<<"小山计算器"<<endl;
cout<<"请输入您想计算的数:(例如:12 + 13),退出请输入n='e'"<<endl;
for(int i=1;i>0;){
cin>>x>>n>>y;
switch(n){
case '+':sum=x+y;break;
case '-':sum=x-y;break;
case '*':sum=x*y;break;
case 'e':break;
case '/':{
if(y!=0){
sum=x/y;
}
cout<<"数学是体育老师教的吧!"<<endl;
break;
}
default:cout<<"妈耶!!有人不认识加减乘除运算符号";break;
}
if(n=='e'){
cout<<"您已退出计算"<<endl;i=0;
}else{
cout<<x<<" "<<n<<" "<<y<<"= "<<sum<<endl;
}
}
return 0;
}
06.猜数字
//猜数字游戏
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main(){
int a,n;
a=rand()%5+1;
srand(time(0));
cout<<"请输入一个1-5之间的整数"<<endl;
cin>>n;
switch(n){
case 1:{
if(a==1){
cout<<"猜对了"<<endl;
}
break;
}
case 2:{
if(a==1){
cout<<"猜对了"<<endl;
}
break;
}
case 3:{
if(a==1){
cout<<"猜对了"<<endl;
}
break;
}
case 4:{
if(a==1){
cout<<"猜对了"<<endl;
}
break;
}
case 5:{
if(a==1){
cout<<"猜对了"<<endl;
}
break;
}
default:cout<<"猜错了"<<endl;
}
cout<<"猜错了"<<",正确数字为:"<<a<<endl;
return 0;
}
07.彩票游戏
//彩票游戏
//你购买一张彩票 中奖概率为1/5
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main(){
int a,n;
bool b=false;
a=rand()%5+1;
srand(time(0));
cout<<"请输入你购买彩票号码:"<<endl;
cin>>n;
if(n==a){
b=true;
}
switch(b){
case true:cout<<"恭喜你中奖50元"<<endl;break;
case false:cout<<"很抱歉,你未中奖"<<endl;break;
default:break;
}
cout<<"本次中奖号码为:"<<a<<endl;
return 0;
}
//彩票游戏plus
//你购买一张彩票 中奖概率为1/5
//输入购买彩票张数N
//刮奖N次
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main(){
int a,n,N;
cout<<"请输入你购买彩票张数:"<<endl;
cin>>N;
for(int i=0;i<N;i++){
bool b=false;
a=rand()%5+1;
srand(time(0));
cout<<"请输入你购买彩票号码:"<<endl;
cin>>n;
if(n==a){
b=true;
}
switch(b){
case true:cout<<"恭喜你中奖50元"<<endl;break;
case false:cout<<"很抱歉,你未中奖"<<endl;break;
default:break;
}
cout<<"本次中奖号码为:"<<a<<endl;
}
return 0;
}