C++中的switch case语句

C++中的switch case语句

C++中的switch case语句

引言

在C++编程中,我们经常遇到基于不同条件执行不同操作的需求。为了满足这种需求,C++提供了一种流程控制语句,即switch case语句。

switch case语句允许我们根据一个表达式的值来选择执行特定的代码块。它提供了一种比使用多个if-else语句更简洁和清晰的方式来处理多个条件的情况。

在本文中,我们将详细介绍C++中的switch case语句的语法、用法和一些注意事项。

switch case语句的语法和用法

switch case语句的基本语法如下所示:

switch (expression) {
    case value1:
        // 执行代码块1
        break;
    case value2:
        // 执行代码块2
        break;
    case value3:
        // 执行代码块3
        break;
    ...
    default:
        // 默认情况下执行的代码
}
  • expression为要进行匹配的表达式或值。

  • case value1case value2等是对expression可能的值进行匹配。每个case后面必须跟一个冒号:

  • expression的值等于某个case后面的值时,相应的代码块将被执行。

  • break语句用来终止代码块的执行。如果不加break语句,代码将会继续执行后面的case,直到遇到break或者switch结束。

  • 如果expression的值与所有case后面的值都不匹配,则执行default后面的代码块。

接下来,我们通过一些示例来更好地理解switch case语句的用法。

示例

示例1:输出星期几

#include <iostream>
using namespace std;

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

    switch (day) {
        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;
    }

    return 0;
}

运行结果

请输入一个数字(1-7): 5
周五

示例2:计算器

#include <iostream>
using namespace std;

int main() {
    double num1, num2;
    char op;

    cout << "请输入两个数字: ";
    cin >> num1 >> num2;
    cout << "请输入一个操作符(+, -, *, /): ";
    cin >> op;

    switch (op) {
        case '+':
            cout << "结果: " << num1 + num2 << endl;
            break;
        case '-':
            cout << "结果: " << num1 - num2 << endl;
            break;
        case '*':
            cout << "结果: " << num1 * num2 << endl;
            break;
        case '/':
            if (num2 != 0) {
                cout << "结果: " << num1 / num2 << endl;
            } else {
                cout << "除数不能为0" << endl;
            }
            break;
        default:
            cout << "无效的操作符" << endl;
    }

    return 0;
}

运行结果

请输入两个数字: 8.5 4.2
请输入一个操作符(+, -, *, /): *
结果: 35.7

示例3:判断月份天数

#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;
    }

    return 0;
}

运行结果

请输入一个月份(1-12): 2
该月份有28或29天

注意事项

下面是在使用switch case语句时需要注意的一些事项:

  • 每个case后面必须加上一个冒号(:)。

  • expression的值可以是整数、字符或枚举类型。

  • 一个switch块可以包含多个case,但case的值必须唯一,且在同一个switch块中不得重复。

  • expression的数据类型必须与case的值的数据类型相同。

  • break语句用于终止代码块的执行,如果忘记加上break将会导致case穿透,即匹配到一个case后,会执行该case及其后面所有case的代码块。

  • default语句是可选的,当expression的值都不匹配时,将执行default后面的代码块。

  • 当执行完一个case的代码块后,程序会从switch块中的下一个语句开始执行,除非在case代码块中使用了break语句或者switch块执行结束。

结论

通过本文,我们详细了解了C++中switch case语句的语法、用法和注意事项。switch case语句是一个很有用的工具,可以让我们根据不同条件执行不同操作,从而增加程序的灵活性和可读性。

在实际开发中,我们可以利用switch case语句来处理一些多条件的场景,例如根据用户输入执行不同的操作、根据不同的条件执行不同的任务等。掌握了switch case语句的使用,可以更好地进行程序设计和开发。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程