Skip to content
本页目录

第7课 选择结构-switch、三目运算符

发布时间:

switch

switch语句是一种多分支结构,一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。

语法

js
switch (expression) {
    case value1:
        // 执行语句;
        break;
    case value2:
        // 执行语句;
        break;
    // ...
    default:
    // 执行语句;
}
   

例1: 根据用户输入的数字,输出对应的星期几。

js
#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: 根据用户输入的年份和月份,输出该月份的天数。

js
#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。

综合练习

  1. 晶晶赴约会
  2. 简单计算器

三目运算符

语法格式:

js
condition ? expression1 : expression2;
//condition是一个条件表达式,
//expression1和expression2是两个可能的结果表达式。
//如果condition为真,则表达式的值为expression1的值,否则为expression2的值。
   

以下是一个例子:

js
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语句的代码。