C++ c++;switch语句:对案例进行分组,并针对每个案例给出特定的说明
考虑以下代码:C++ c++;switch语句:对案例进行分组,并针对每个案例给出特定的说明,c++,switch-statement,C++,Switch Statement,考虑以下代码: int main() { const int a = 9; switch (a) { case 9: // since a is 9, this ("good") should be printed std::cout << " good " << std::endl; case 4: // since a is not 4, this ("bad") should
int main()
{
const int a = 9;
switch (a)
{
case 9:
// since a is 9, this ("good") should be printed
std::cout << " good " << std::endl;
case 4:
// since a is not 4, this ("bad") should not be printed
std::cout << " bad " << std::endl;
// for both a==9 or a==4, this should be printed
{
std::cout << " always print me " << std::endl;
break;
}
}
}
然而,这是行不通的。在C++中有没有办法做到这一点?谢谢 在
开关
语句中,除了使用转到
之外,没有任何方法可以执行您要求的操作:
#include <iostream>
int main()
{
const int a{ 9 };
switch (a)
{
case 9:
std::cout << "good\n";
goto foo;
case 4:
std::cout << "bad\n";
goto foo;
foo:
std::cout << "always print me\n";
break;
}
}
#包括
int main()
{
常数int a{9};
开关(a)
{
案例9:
std::不能将您的始终打印我
消息打印出switch语句体。请使用if
而不是switch
?对于复杂的情况,您确实无法使用switch
。还要注意,如果没有中断
,您的代码将同时打印“好”
和“坏”
。开关盒只是标签。将开关盒视为一个更容易的转到标签系统。当然有……简单地说,std::cout@user463035818“在开关语句中没有办法做你要求的事情”@user463035818:但在默认情况下也是如此(例如a=23)
#include <iostream>
int main()
{
const int a{ 9 };
switch (a)
{
case 9:
std::cout << "good\n";
goto foo;
case 4:
std::cout << "bad\n";
goto foo;
foo:
std::cout << "always print me\n";
break;
}
}