简要介绍switch的用法

 

switch 语句是C++中用于多分支选择的一种控制结构,它允许根据一个变量的值选择执行不同的代码块switch 语句通常用于替代多个 if-else if 语句,使代码更加清晰和简洁。以下是 switch 语句的详细用法和一些注意事项。

1. 基本语法

switch 语句的基本语法如下:

switch (expression) {
    case constant1:
        // 代码块1
        break;
    case constant2:
        // 代码块2
        break;
    // 可以有多个 case
    default:
        // 默认代码块
        break;
}
  • expression:是一个整数表达式可以隐式转换为整数的表达式

  • case constant:每个 case 后面跟着一个常量值这些常量值必须是整数或字符类型且不能重复

  • break用于退出 switch 语句,防止代码继续执行到下一个 case

  • default:可选的默认分支,expression 的值与任何 case 的值都不匹配时执行

2. 示例代码

以下是一个简单的示例代码,展示了 switch 语句的基本用法:

#include <iostream>
using namespace std;

int main() {
    int month;
    cout << "请输入月份(1-12):";
    cin >> 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:
            cout << "这个月有28天或29天。" << endl;
            break;
        default:
            cout << "输入的月份无效。" << endl;
            break;
    }

    return 0;
}

3. 详细说明

3.1 表达式

switch 语句的表达式可以是任何整数类型(如 intcharenum 等),也可以是可以隐式转换为整数的类型(如 bool)。例如:

char grade;
cin >> grade;

switch (grade) {
    case 'A':
        cout << "优秀" << endl;
        break;
    case 'B':
        cout << "良好" << endl;
        break;
    case 'C':
        cout << "及格" << endl;
        break;
    default:
        cout << "不及格" << endl;
        break;
}

3.2 case 块

每个 case 块后面跟着一个常量值,这些常量值必须是整数或字符类型,且不能重复。case 块中的代码可以是任意语句,包括多个语句。

3.3 break 语句

break 语句用于退出 switch 语句,防止代码继续执行到下一个 case。如果没有 break,代码会继续执行到下一个 case,这称为“穿透”(fall-through)。例如:

int num;
cin >> num;

switch (num) {
    case 1:
        cout << "1";
    case 2:
        cout << "2";
    case 3:
        cout << "3";
        break;
    default:
        cout << "其他";
        break;
}

如果输入 1,输出将是 123,因为没有 break,代码会继续执行到下一个 case

3.4 default 块

default 块是可选的,当 expression 的值与任何 case 的值都不匹配时执行。default 块可以放在 switch 语句的任何位置,但通常放在最后。

4. 注意事项

  • 穿透问题:如果没有 break,代码会继续执行到下一个 case,这可能导致意外的行为。因此,通常在每个 case 块的末尾加上 break

  • 常量值的唯一性:每个 case 的常量值必须是唯一的,不能重复。

  • 表达式的类型switch 语句的表达式必须是整数类型或可以隐式转换为整数的类型。

  • default 的位置default 块可以放在任何位置,但通常放在最后,以提高代码的可读性。

5. 示例代码

以下是一个完整的示例代码,展示了 switch 语句的多种用法:

#include <iostream>
using namespace std;

int main() {
    int choice;
    cout << "请输入一个数字(1-4):";
    cin >> choice;

    switch (choice) {
        case 1:
            cout << "你选择了 1。" << endl;
            break;
        case 2:
            cout << "你选择了 2。" << endl;
            break;
        case 3:
            cout << "你选择了 3。" << endl;
            break;
        case 4:
            cout << "你选择了 4。" << endl;
            break;
        default:
            cout << "你输入的数字不在范围内。" << endl;
            break;
    }

    return 0;
}

6. 总结

switch 语句是一种非常有用的多分支选择结构,适用于根据一个变量的值选择执行不同的代码块。通过合理使用 switch 语句,可以使代码更加清晰和简洁。

收藏加关注,观看不迷路 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值