有没有一种编程语言对 switch 的中断语句有更好的方法?
2022-09-02 11:51:36
它在太多语言中具有相同的语法:
switch (someValue) {
case OPTION_ONE:
case OPTION_LIKE_ONE:
case OPTION_ONE_SIMILAR:
doSomeStuff1();
break; // EXIT the switch
case OPTION_TWO_WITH_PRE_ACTION:
doPreActionStuff2();
// the default is to CONTINUE to next case
case OPTION_TWO:
doSomeStuff2();
break; // EXIT the switch
case OPTION_THREE:
doSomeStuff3();
break; // EXIT the switch
}
现在,您所知道的语句是必需的,因为当语句丢失时,将一直持续到下一个语句。我们有一个示例,其中包含 、 和 。问题是,我们只需要这种“跳到下一个案例”非常非常少。而且很多时候,我们在 的末尾放置了休息时间。break
switch
case
break
OPTION_LIKE_ONE
OPTION_ONE_SIMILAR
OPTION_TWO_WITH_PRE_ACTION
case
初学者很容易忘记它。我的一位C老师甚至向我们解释了它,就好像它是C语言中的一个错误(不想谈论它:)
我想问一下,是否有任何我不知道(或忘记)的其他语言可以处理这样的开关/情况:
switch (someValue) {
case OPTION_ONE: continue; // CONTINUE to next case
case OPTION_LIKE_ONE: continue; // CONTINUE to next case
case OPTION_ONE_SIMILAR:
doSomeStuff1();
// the default is to EXIT the switch
case OPTION_TWO_WITH_PRE_ACTION:
doPreActionStuff2();
continue; // CONTINUE to next case
case OPTION_TWO:
doSomeStuff2();
// the default is to EXIT the switch
case OPTION_THREE:
doSomeStuff3();
// the default is to EXIT the switch
}
第二个问题:为什么我们在C中采用当前的中断方法是否有任何历史意义?也许继续下一个案例的使用频率远远超过我们这些天使用它?