一、概念
switch case语句是一种条件语句,它根据不同的条件执行相应的代码块。switch语句根据一个表达式的值,判断表达式是否于后面每个case语句中的值相等,如果相等就执行对应的语句块。如果所有的case语句都不满足该值,便执行default语句块。switch语句适用于一堆相互独立的分支结构,每个分支结构的条件可以为常量或变量。
二、语法
switch(表达式)
{
case 值1:
statement;
break;
case 值2:
statement;
break;
...
default:
statement;
}
说明:
- 表达式一般是一个整型或字符型的常量或变量。
- case表示各个分支。
- 表达式的值与case后的值相匹配,则执行相应的分支。
- 如果表达式的值不属于任何一个case的值,则执行default中的语句。
- 如果没有break语句,程序会继续执行后面的case语句,直到遇到break语句或switch语句结束。
三、使用方法
1、基本使用方法
switch case语句适用于多重判断的情况。例如:
int weekday = 2;
switch(weekday){
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
case 4:
cout << "Thursday" << endl;
break;
case 5:
cout << "Friday" << endl;
break;
case 6:
cout << "Saturday" << endl;
break;
case 7:
cout << "Sunday" << endl;
break;
default:
cout << "Invalid day" << endl;
break;
}
该程序会输出Tuesday。
2、可以省略break关键字
如果在case语句中没有用break语句,程序执行完与该case匹配的语句块后,就会继续执行下一个case语句中的语句,直到遇到break语句或者switch语句的结束。
例如:
int num = 2;
switch(num){
case 1:
cout << "one" << endl;
case 2:
cout << "two" << endl;
case 3:
cout << "three" << endl;
default:
cout << "default" << endl;
}
该程序将输出:
two
three
default
3、一个case判断多种情况
一个case可以匹配多个值,例如:
int num = 4;
switch(num){
case 1:
case 2:
case 3:
cout << "small" << endl;
break;
case 4:
case 5:
case 6:
cout << "medium" << endl;
break;
case 7:
case 8:
case 9:
cout << "large" << endl;
break;
}
该程序将输出medium。
4、表达式不必是常量
表达式可以是一个变量,甚至可以是一个表达式,例如:
int a = 10, b = 20;
int c = a + b;
switch(c){
case 10:
cout << "small" << endl;
break;
case 20:
cout << "medium" << endl;
break;
case 30:
cout << "large" << endl;
break;
}
该程序将输出medium。
5、使用switch嵌套
switch语句可以嵌套使用。
例如:
int i = 1, j = 2;
switch(i){
case 1:
cout << "i is one." << endl;
switch(j){
case 1:
cout << "j is one." << endl;
break;
case 2:
cout << "j is two." << endl;
break;
}
break;
case 2:
cout << "i is two." << endl;
break;
}
该程序将输出:
i is one.
j is two.
四、案例说明
1、用户登录系统
假设我们要实现一个用户登录系统,需要输入用户名和密码,如果用户名和密码符合要求,则输出欢迎信息;如果用户名或密码错误,则输出错误信息。可以使用switch case语句来实现。
#include #include using namespace std; int main(){ string username, password; cout << "Please enter your username: "; getline(cin, username); cout << "Please enter your password: "; getline(cin, password); switch(username == "admin" && password == "123456"){ case true: cout << "Welcome, " << username << "!" << endl; break; case false: cout << "Invalid username or password." << endl; break; } return 0; } 该程序会根据输入的用户名和密码输出不同的信息。 2、计算器 假设我们要实现一个简单的计算器,可以输入两个数和某种运算符(加号、减号、乘号和除号),然后输出结果。可以使用switch case语句来实现。 #include using namespace std; int main(){ double num1, num2, result; char op; cout << "Enter first number: "; cin >> num1; cout << "Enter second number: "; cin >> num2; cout << "Enter operator (+, -, *, /): "; cin >> op; switch(op){ case '+': result = num1 + num2; cout << num1 << " + " << num2 << " = " << result << endl; break; case '-': result = num1 - num2; cout << num1 << " - " << num2 << " = " << result << endl; break; case '*': result = num1 * num2; cout << num1 << " * " << num2 << " = " << result << endl; break; case '/': if(num2 == 0){ cout << "Invalid input: cannot divide by zero." << endl; } else{ result = num1 / num2; cout << num1 << " / " << num2 << " = " << result << endl; } break; default: cout << "Invalid operator." << endl; break; } return 0; } 该程序会根据输入的运算符执行相应的运算。 如果你喜欢我们三七知识分享网站的文章,
欢迎您分享或收藏知识分享网站文章
欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
这两片嘴唇,切切倒有一大碟子。