是否可以使用goto与开关? [英] Is it possible to use goto with switch?
本文介绍了是否可以使用goto与开关?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
基本上,我有一个开关,可以对单个标准排序的东西,并且可以使用C#
说:
switch(color)
{
case绿色:
case红色:
case蓝色:
Paint();
break;
case黄色:
if(AlsoHasCriteriaX)
Paint();
else
goto default;
break;
默认值:
打印(Ugly color,no paint。)
break;
}
解决方案
这个:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case黄色:
if(AlsoHasCriteriaX){
Paint();
break; / *通知break here * /
}
默认值:
打印(Ugly color,no paint。)
break;
}
或者您可以这样做:
switch(color)
{
case绿色:
case红色:
case蓝色:
Paint );
break;
case黄色:
if(AlsoHasCriteriaX){
Paint();
break; / * notice break here * /
}
goto explicit_label;
case FUCHSIA:
PokeEyesOut();
break;
默认值:
explicit_label:
打印(丑色,无油漆)
break;
}
It seems it's possible with C#, but I need that with C++ and preferably cross platform.
Basically, I have a switch that sorts stuff on single criteria, and falls back to default processing on everything else.
Say:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX)
Paint();
else
goto default;
break;
default:
Print("Ugly color, no paint.")
break;
}
解决方案
Not quite but you can do this:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX) {
Paint();
break; /* notice break here */
}
default:
Print("Ugly color, no paint.")
break;
}
OR you could do this:
switch(color)
{
case GREEN:
case RED:
case BLUE:
Paint();
break;
case YELLOW:
if(AlsoHasCriteriaX) {
Paint();
break; /* notice break here */
}
goto explicit_label;
case FUCHSIA:
PokeEyesOut();
break;
default:
explicit_label:
Print("Ugly color, no paint.")
break;
}
这篇关于是否可以使用goto与开关?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文