学员答疑5

发布时间 2023-07-04 11:24:47作者: BAG225

Switch

在C++中,switch语句无法直接判断范围。switch语句仅能判断表达式的具体值与case标签的值是否相等。它不支持使用范围作为条件。

C++中的switch语句是一种选择结构,常用于根据表达式的不同取值执行不同的代码块。它可以更清晰地处理多个条件的情况。

下面是一个基本的switch语句的语法:

switch (expression) {
    case value1:
        // 执行与 value1 对应的代码
        break;
    case value2:
        // 执行与 value2 对应的代码
        break;
    case value3:
        // 执行与 value3 对应的代码
        break;
    // 可以有更多的case语句
    default:
        // 当 expression 的值与之前的任何一个值都不匹配时执行的代码
        break;
}

使用时,首先要提供一个表达式(expression),其结果会与后续的每个case标签的值进行比较。如果匹配成功,程序将执行与该case标签关联的代码块,并使用break语句跳出switch语句。如果没有匹配成功,程序将执行default标签后的代码块(如果有的话)。

需要注意的是,case标签的值必须是整数常量或枚举常量。在C++11及以上的标准中,还允许使用枚举类、字符常量、字符串常量或可求值整数常量表达式作为case标签的值。

下面是一个简单的例子,展示了使用switch语句的情况:

int dayOfWeek = 1;

switch (dayOfWeek) {
    case 1:
        cout << "Monday" << endl;
        break;
    case 2:
        cout << "Tuesday" << endl;
        break;
    case 3:
        cout << "Wednesday" << endl;
        break;
    case 4:
        cout << "Thursday" << endl;
        break;
    case 5:
        cout << "Friday" << endl;
        break;
    case 6:
        cout << "Saturday" << endl;
        break;
    case 7:
        cout << "Sunday" << endl;
        break;
    default:
        cout << "Invalid day of the week" << endl;
        break;
}

上述代码将输出 “Monday”,因为dayOfWeek的值为1。如果dayOfWeek的值为其他数字,根据匹配结果输出相应的信息,如果没有匹配到任何值,则输出 “Invalid day of the week”。