gpt4 book ai didi

java - Switch 语句 : Is the logic different in C v/s. Java 等其他语言?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:59 25 4
gpt4 key购买 nike

我正在浏览 this C 编程教程。它说:

The switch-statement is actually entirely different(from other languages) and is really a "jump table". Instead of random boolean expressions, you can only put expressions that result in integers, and these integers are used to calculate jumps from the top of the switch to the part that matches that value. Here's some code that we'll break down to understand this concept of "jump tables".

但是,需要比较 switch 语句的大小写,直到找到匹配项(否则返回默认值。)

那么它与多个 if-else 语句有何不同?或者,它只是一个语法糖?我在这里遗漏了什么重要的东西吗?

最佳答案

它的实现方式似乎取决于编译器。 How Switch case Statement Implemented or works internally?

但一般来说,switch 语句有一个允许编译器对其进行优化的前提条件,这与 just if 语句不同,后者是您要比较的项目始终是整数类型 (char/int/long)。

其他语言允许可以在编译时评估的原语用作 switch 语句变量(C# 中的字符串)。

但总的来说,除了潜在的加速(以及如果你不中断可能发生的失败),一堆 ifs 没有行为差异。

关于java - Switch 语句 : Is the logic different in C v/s. Java 等其他语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30512816/

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