Java 我为什么要学习;开关箱“;什么时候;如有其他",;已经存在

Java 我为什么要学习;开关箱“;什么时候;如有其他",;已经存在,java,c++,c,coding-style,Java,C++,C,Coding Style,可能重复: 我目前正在学校学习“切换案例”,我想知道当“如果其他”已经存在时,学习它有什么意义。“if-else”基本上是“switch-case”的另一种方式 如果我错了,请纠正我。您应该学习开关构造,因为它是C语言提供的有用工具 它与if-else块不同 在你问题的评论部分,有到现有答案的链接,解释差异是什么 每种结构都有它的优点和缺点,随着时间的推移,您将学会选择一种结构而不是另一种结构。您应该学习开关结构,因为它是C语言提供的有用工具 它与if-else块不同 在你问题的评论部分,有

可能重复:

我目前正在学校学习“切换案例”,我想知道当“如果其他”已经存在时,学习它有什么意义。“if-else”基本上是“switch-case”的另一种方式


如果我错了,请纠正我。

您应该学习
开关
构造,因为它是C语言提供的有用工具

它与
if-else
块不同

在你问题的评论部分,有到现有答案的链接,解释差异是什么


每种结构都有它的优点和缺点,随着时间的推移,您将学会选择一种结构而不是另一种结构。

您应该学习
开关
结构,因为它是C语言提供的有用工具

它与
if-else
块不同

在你问题的评论部分,有到现有答案的链接,解释差异是什么


每种结构都有它的优点和缺点,随着时间的推移,当选择一种结构比另一种结构更合适时,你会学到这两种结构。

你应该同时学习这两种结构。虽然在技术上可以使用
开关实现任何
if
/
else
序列,反之亦然,但这样做将是非常糟糕的做法。。。在大多数情况下

因此,你需要学习这两种结构,了解它们的优缺点,并学会运用你的判断来判断何时适合使用它们


<>和C和C++和java(以及C和Pascal等许多语言)都支持交换语句的事实应该告诉你它的有用性……< /P> < P>你应该同时学习这两个语句。虽然在技术上可以使用
开关实现任何
if
/
else
序列,反之亦然,但这样做将是非常糟糕的做法。。。在大多数情况下

因此,你需要学习这两种结构,了解它们的优缺点,并学会运用你的判断来判断何时适合使用它们


<>和C和C++和java(以及C和Pascal等许多语言)都支持交换语句的事实应该告诉你它的有用性……< P/> < P> >有点怀旧。实际上,他们两人“看起来”一样。但是当代码被执行时会有一点不同

首先,“开关箱”仅用于比较数值。但是“if-else”可以处理布尔表达式(这将支持更复杂的子句)

如果在找到实际要搜索的内容时使用常规的“If-else”,则进程仍将运行,直到完成最后一个If的处理为止(但实际上它可以使用跳转技术来具有类似于“switch-case”的机制)
如果使用“switch case”,则不会发生这种情况,因为一旦找到要搜索的值,它将中断,并且不会继续到下一个案例。此外,“switch case”的处理速度比if-else快,因为它只比较定义的值(而不是表达式)。“switch case”还有一个很好的格式结构(它简单、紧凑、可读且干净)。

听到它有点怀旧。实际上,他们两人“看起来”一样。但是当代码被执行时会有一点不同

首先,“开关箱”仅用于比较数值。但是“if-else”可以处理布尔表达式(这将支持更复杂的子句)

如果在找到实际要搜索的内容时使用常规的“If-else”,则进程仍将运行,直到完成最后一个If的处理为止(但实际上它可以使用跳转技术来具有类似于“switch-case”的机制)
如果使用“switch case”,则不会发生这种情况,因为一旦找到要搜索的值,它将中断,并且不会继续到下一个案例。此外,“switch case”的处理速度比if-else快,因为它只比较定义的值(而不是表达式)。“switch case”还有一个很好的格式结构(它简单、紧凑、可读性强、清晰)。

工具越多越好。直截了当地说出为什么你应该知道这两个。。。然而,更详细的例子是:

switch语句作用于构造的单一类型变量:

variable == value
例如,在C语言中,如果你试图通过比较一些不同的字符串来做出决定,你不能用开关来做。在这种情况下,您需要了解if/else构造

但是,如果您有大量的顺序检查:

var == 1  or
var == 2  or
var == 3  etc

编译器可能会将switch语句转换为跳转表,这将比if/else列表的大量比较更快

工具越多越好。直截了当地说出为什么你应该知道这两个。。。然而,更详细的例子是:

switch语句作用于构造的单一类型变量:

variable == value
例如,在C语言中,如果你试图通过比较一些不同的字符串来做出决定,你不能用开关来做。在这种情况下,您需要了解if/else构造

但是,如果您有大量的顺序检查:

var == 1  or
var == 2  or
var == 3  etc

编译器可能会将switch语句转换为跳转表,这将比if/else列表的大量比较更快

开关箱
if-else
结构之间的差异:

  • Switch case只打开值,不计算布尔表达式
  • 如果在案例块之后不使用
    break
    ,则Switch case会自动执行其下方的下一个案例。此功能有时对编写复杂代码很有用,如“电话拨号计划”
  • 西南