gpt4 book ai didi

java - 有没有一种编程语言可以更好地处理 switch 的 break 语句?

转载 作者:太空狗 更新时间:2023-10-29 22:31:31 24 4
gpt4 key购买 nike

在太多语言中它的语法相同:

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_SIMILAROPTION_TWO_WITH_PRE_ACTION .问题是我们很少需要这种“跳到下一个案例”。我们经常把 break 放在 case 的末尾.

初学者很容易忘记它。我的一位 C 老师甚至向我们解释它,好像它是 C 语言中的一个错误(不想谈论它:)

我想问一下是否还有其他我不知道(或忘记)的语言可以像这样处理 switch/case:

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 中使用当前的 break 方法有什么历史意义吗?也许继续下一个 case 比我们现在使用的更频繁?

最佳答案

来自 this文章,我可以列举一些不需要类似break语句的语言:

  1. Ada(无失败)
  2. Eiffel(无漏电)
  3. Pascal(无 fallthrough)
  4. Go - fallthrough
  5. Perl - 继续
  6. Ruby(无 fallthrough)
  7. VB、VBA、VBS、VB.NET(无 fallthrough)
  8. 由其他人继续...

你的第二个问题很有趣。假设只有 C,我相信这个决定保持了语言的凝聚力。由于 break 是一个跳跃,因此必须显式编写。

关于java - 有没有一种编程语言可以更好地处理 switch 的 break 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3014668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com