switch case语句,switch case用法详解

一、概念

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/

点赞(12) 打赏

评论列表 共有 1 条评论

感情最狗 1年前 回复TA

这两片嘴唇,切切倒有一大碟子。

立即
投稿
发表
评论
返回
顶部