C++青少年简明教程:switch语句
在C++中,switch语句用于基于一个表达式的值来执行不同的代码块。这个表达式通常是一个整数类型(如int,char,或枚举类型),并且case标签必须是整数常量表达式。
语法格式:
switch(表达式){
case 常量表达式1:
语句1;
[break;]
case 常量表达式2:
语句2;
[break;]
case 常量表达式3:
语句3;
[break;]
......
[default:
语句k;
[break;]]
}
switch语句执行流程图:
或者
这两个switch语句执行流程图是等价的。
例、使用 switch 语句来根据用户输入的数字表示的星期几,打印出对应的星期几的文本。
#include <iostream>
using namespace std;int main() {int day;cout << "请输入星期几(用数字表示,1-7):";cin >> day;switch(day) {case 1:cout << "星期一" << endl;break;case 2:cout << "星期二" << endl;break;case 3:cout << "星期三" << endl;break;case 4:cout << "星期四" << endl;break;case 5:cout << "星期五" << endl;break;case 6:cout << "星期六" << endl;break;case 7:cout << "星期日" << endl;break;default:cout << "无效的输入" << endl;}return 0;
}
当用户输入一个数字时,将会根据相应的 case 打印出对应的星期几。如果用户输入的数字不在 1-7 的范围内,则执行 default 下的代码块,打印出 "无效的输入"。
前一节母子约定问题,改用switch语句:
#include <iostream>
using namespace std;int main() {int fenshu;cout << "请输入考试分数:";cin >> fenshu;switch(fenshu/10) {case 10:cout << "暑假不用写作业";break;case 9:cout << "奖励100元零花钱";break;case 8:cout << "奖励10元零花钱";break;case 7:cout << "没奖励";break;case 6:cout << "暑假不能玩电子游戏";break;default:cout << "会发生可怕的事情..."; } return 0;
}
前一节母子约定问题,改用switch语句:
#include <iostream>
using namespace std;int main() {int fenshu;cout << "请输入考试分数:";cin >> fenshu;switch(fenshu/10) {case 10:cout << "暑假不用写作业";break;case 9:cout << "奖励100元零花钱";break;case 8:cout << "奖励10元零花钱";break;case 7:cout << "没奖励";break;case 6:cout << "暑假不能玩电子游戏";break;default:cout << "会发生可怕的事情..."; } return 0;
}
提示,这个代码首先将分数除以10,得到一个整数——将连续的分数范围映射到离散的整数值,从而在switch语句中进行等级判断。这是一种编程技巧。