第7课 选择结构-switch、三目运算符
发布时间:
switch
switch语句是一种多分支结构,一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。
语法:
switch (expression) {
case value1:
// 执行语句;
break;
case value2:
// 执行语句;
break;
// ...
default:
// 执行语句;
}
例1: 根据用户输入的数字,输出对应的星期几。
#include <iostream>
using namespace std;
int main() {
int num;
cout << "请输入数字(1-7):" << endl;
cin >> num;
switch (num) {
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;
break;
}
return 0;
}
例2: 根据用户输入的年份和月份,输出该月份的天数。
#include <iostream>
using namespace std;
int main() {
int year,month;
cout << "请输入年和月,用空格隔开" << endl;
cin >> year >> month;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout << "本月有31天" << endl;
break;
case 4:
case 6:
case 9:
case 11:
cout << "本月有30天" << endl;
break;
case 2:{
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
cout << "本月有29天" << endl;
}else{
cout << "本月有28天" << endl;
}
break;
}
default:
cout << "输入有误" << endl;
break;
}
return 0;
}
这里用到了switch语句中“下落”的特性,也就是当case满足时,没有遇到break,就会一直往下执行case。
综合练习
三目运算符
语法格式:
condition ? expression1 : expression2;
//condition是一个条件表达式,
//expression1和expression2是两个可能的结果表达式。
//如果condition为真,则表达式的值为expression1的值,否则为expression2的值。
以下是一个例子:
int a = 10, b = 20;
int max = (a > b) ? a : b;
练习,重做例题
进阶练习: 【例3.11】买笔
选择结构总结
1. 条件表达式
条件表达式是C++中用于判断条件是否成立的表达式,它的值为真或假。条件表达式通常包含比较运算符(如>、<、>=、<=、==、!=)和逻辑运算符(如&&、||、!),可以通过条件表达式来控制程序的执行路径。
2. if语句
if语句是C++中最常用的选择结构,用于根据条件判断来执行不同的代码块。当条件表达式的值为真时,if语句执行相应的代码块;否则不执行代码块,程序继续向下执行。当if语句只有单个语句时,可以省略大括号,但为了代码可读性,建议不要省略。
3. if-else语句
if-else语句是在if语句的基础上加入了else分支,用于根据条件判断来执行不同的代码块。当条件表达式的值为真时,if语句执行相应的代码块;否则执行else语句块中的代码。
4. if-else if语句
if-else if语句是在if-else语句的基础上加入了多个else if分支,用于根据多个条件判断来执行不同的代码块。当条件表达式的值为真时,if语句执行相应的代码块;否则判断下一个else if分支,直到找到匹配的条件,执行对应的代码块;如果没有匹配的条件,则执行else语句块中的代码。
5. switch语句
switch语句是用于根据条件执行不同代码块的选择结构。当某个条件满足时,switch语言会执行与该条件关联的代码块,然后跳出switch语句。如果没有条件满足,可以提供一个默认代码块。
6. 三目运算符
三目运算符是C++中的一种简化if-else语句的方式,它由一个条件表达式和两个结果表达式组成。当条件表达式的值为真时,返回第一个结果表达式的值;否则返回第二个结果表达式的值。
在实际编程中,我们需要根据具体情况选择使用不同的选择结构。if语句、if-else语句和if-else if语句常用于根据单一条件执行不同的代码块;switch语句常用于根据多个值执行不同的代码块;三目运算符常用于简化if-else语句的代码。