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语句中进行等级判断。这是一种编程技巧。



















