首页 > 解决方案 > C ++如何在switch语句中放置两个参数

问题描述

我试过这样做,但它总是输出默认情况,是的,我已经将 k 和 j 设置为 1 和 3

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

标签: c++

解决方案


语句 switch 不是函数。它没有参数。

在这个 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 )

推荐阅读