我尝试执行此操作,但是它始终输出默认大小写,是的,我将k和j设置为1和3
switch(k,j){
case 1&&3:
cout << "1 3 \n";
break;
default:
cout << "invalid \n";
break;
答案 0 :(得分:4)
您可以尝试将两个值转换为一个值。我不知道k
和j
的值有多大,但是您可以做类似
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 )