gpt4 book ai didi

java - switch 语句的奇怪语义

转载 作者:行者123 更新时间:2023-11-30 04:05:43 25 4
gpt4 key购买 nike

我遇到了 switch 语句的这种变体,我想知道在什么情况下可以使用它?

奇怪的是,它在默认值之前没有案例,只有在默认值之后。并且没有 break 语句。但效果很好。

这里是代码:

public static Item newItem() {
switch (rand.nextInt(3)) {
default:
case 0:
return new Scissors();
case 1:
return new Paper();
case 2:
return new Rock();
}
}

它到底是如何以这种奇怪的风格执行的。我试图让调试变得简单,一切正常,它返回一个显式实例的准确性。

问题:为什么我们需要写:

default:
case 0:

典型用法:

case 0:
default:

编译器不允许更改或注释 default 语句。

有什么建议吗?

PS请不要写愚蠢的解释switch如何工作。天气晴朗。只写这个明确的例子。

顺便说一句我在 Thinking in Java by Bruce Eckel 遇到了这种和平的代码.

最佳答案

default 分支仅表示“所有未明确指定的选项的分支。按照惯例,将其放在 switch-case 语句的末尾,但是不是必需的。

break 也不是必需的 - 如果 switch-case 的分支不以 break 结尾,它将继续执行下一个分支中的代码 - 这称为fallthrough。但是,在这里您不需要它,因为每个分支只是返回,因此函数的执行不会继续。

关于java - switch 语句的奇怪语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20774246/

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