条件判断结构——switch结构与三目运算
一、课上练习
编程练习
示例代码
汉译英代码示例
1#include <bits/stdc++.h>
2using namespace std;
3
4int main() {
5 int n;
6 cin >> n;
7 switch (n) {
8 case 1:
9 cout << "one" << endl;
10 break;
11 case 2:
12 cout << "two" <<endl;
13 break;
14 case 3:
15 cout << "three" <<endl;
16 break;
17 case 4:
18 cout << "four" <<endl;
19 break;
20 case 5:
21 cout << "five" <<endl;
22 break;
23 case 6:
24 cout << "six" <<endl;
25 break;
26 case 7:
27 cout << "seven" <<endl;
28 break;
29 case 8:
30 cout << "eight" <<endl;
31 break;
32 case 9:
33 cout << "nine" <<endl;
34 break;
35 default:
36 cout << "out" << endl;
37 }
38 return 0;
39}最经济型包装箱代码示例
1#include <bits/stdc++.h>
2using namespace std;
3
4int main() {
5 int weight;
6 cin >> weight;
7 weight /= 10;
8// weight = weight / 10;
9 switch (weight) {
10 case 0:
11 cout << "A" << endl;
12 break;
13 case 1:
14 cout << "B" << endl;
15 break;
16 case 2:
17 case 3:
18 cout << "C" << endl;
19 break;
20 case 4:
21 cout << "D" << endl;
22 break;
23 default:
24 cout << "E" << endl;
25 }
26 return 0;
27}三个数最大数代码示例
1#include <bits/stdc++.h>
2using namespace std;
3
4int main() {
5 int a, b, c;
6 cin >> a >> b >> c;
7 int max = (a > b ? a : b) > c ? (a > b ? a : b) : c;
8// max = max > c ? max : c;
9 cout << max << endl;
10 return 0;
11}二、知识总结
✨ switch结构
适用场景
当我们要判断的变量有有限个不同的值时,比较适合用switch结构,例如判断星期几、月份、成绩等级等。
语法格式
switch语法格式
1switch (表达式) {
2 case 数值1:
3 操作1;
4 break;
5 case 数值2:
6 操作2;
7 break;
8 case 数值3:
9 操作3;
10 break;
11 default:
12 默认操作;
13}switch流程图
正在渲染流程图...
注意事项
使用switch时需要注意以下几点:
- case后的数值只能是数字或者常量,不可以使用变量或带有变量的表达式
- 如果两个情况对应同一种操作,不可以写成或的形式,必须写两个case(参见下方示例中周六周日的写法)
- 每个case内都要有break,否则会继续执行下一个case的代码
- default可以有也可以没有,default内可以没有break
综合示例:星期几判断
输入1~7的整数,输出对应的星期。
正在渲染流程图...
星期几判断代码
1int day;
2cin >> day;
3switch (day) {
4 case 1:
5 cout << "星期一" << endl;
6 break;
7 case 2:
8 cout << "星期二" << endl;
9 break;
10 case 3:
11 cout << "星期三" << endl;
12 break;
13 case 4:
14 cout << "星期四" << endl;
15 break;
16 case 5:
17 cout << "星期五" << endl;
18 break;
19 case 6:
20 case 7:
21 cout << "周末" << endl;
22 break;
23 default:
24 cout << "输入错误" << endl;
25}✨ 三目运算
什么是三目运算
三目运算(也叫条件运算)是一种简洁的条件判断写法,可以用一行代码代替简单的if-else结构。
它包含 ? 和 : 两个运算符、三个表达式,因此被称为"三目运算":
?左边是条件表达式:左边是条件为真时的返回值:右边是条件为假时的返回值
语法格式
三目运算语法格式代码示例
1// 语法格式:条件表达式 ? 表达式1 : 表达式2
2// 条件为真 → 返回表达式1
3// 条件为假 → 返回表达式2
4
5int a = 10, b = 20;
6int max_ab = a > b ? a : b; // a > b 为假,返回 b,即 max_ab = 20三目运算本质上是if-else的简写形式,上面的代码等价于:
等价的if-else写法
1int max_ab;
2if (a > b) {
3 max_ab = a;
4} else {
5 max_ab = b;
6}注意事项
使用三目运算时需要注意以下几点:
- 三目运算适合简单的条件赋值,逻辑复杂时应使用if-else,避免代码难以阅读
- 三目运算可以嵌套使用,但不建议嵌套过多层
- 三目运算是一个表达式,有返回值,可以直接用于赋值或输出
综合示例:判断奇偶性
三目运算综合示例
int n;
cin >> n;
// 直接在输出中使用三目运算
cout << (n % 2 == 0 ? "偶数" : "奇数") << endl;