C ++如何在switch语句中放置两个参数

时间:2019-12-15 12:46:19

标签: c++

我尝试执行此操作,但是它始终输出默认大小写,是的,我将k和j设置为1和3

switch(k,j){
case 1&&3:
    cout << "1 3 \n";
    break;
default:
    cout << "invalid \n";
    break;

2 个答案:

答案 0 :(得分:4)

您可以尝试将两个值转换为一个值。我不知道kj的值有多大,但是您可以做类似

的事情
int newValue = k*1000+j; 
switch(newValue){
case 1003:
    cout << "1 3 \n";
    break;
default:
    cout << "invalid \n";
    break;
}

答案 1 :(得分:4)

语句开关不是功能。它没有参数。

在此switch语句中

switch(k,j)

在逗号运算符中使用了一个表达式。表达式的结果是操作数j的值。由于该表达式没有副作用,因此它等效于

switch( j )

您的意思是以下

#include <iostream>

int main()
{
    int k = 1, j = 3;

    switch ( k )
    {
    case 1:
        switch ( j )
        {
        case 3:                
            std::cout << "k and j are equal to correspondingly to "
                      << 1 << " and " << 3 << '\n';
            break;
        default:
            std::cout << "Invalid values.\n";
            break;
        }
        break;            
    default:
        std::cout << "Invalid values.\n";
        break;
    }            
} 

程序输出为

k and j are equal to correspondingly to 1 and 3

或者在C ++ 17中,您可以在switch语句中声明变量,例如

switch ( int k = 1, j = 3; k )