我不确定我是否理解 if block 和 switch/select block 之间的区别。 我的意思是我一直在使用它们。但是我不清楚什么时候应该应用开关 block ,什么时候不应用。因为,一个 select block 可以扩展为 if block 。 所以我能想到的使用 select block 的唯一真正优势是人类可读性。
最佳答案
答案会因语言而有所不同。例如,在 C 和 C++ 中,编译器可以将 switch
(select) 语句转换为相当高效的跳转表,部分原因是它们比 if
语句条件更具限制性. (尽管公平地说,现代编译器非常擅长优化各种东西。)这可能不适用于所有语言/编译器(我似乎记得 VB6 基本上将 Select Case
视为一系列If/ElseIf
语句。)
可读性绝对是一个因素:使用 switch
(或 VB 中的 Select Case
)告诉跟随你的人下面的所有分支都在一个共同条件下分支,这非常有用。
可维护性(与可读性相关但不同)也是一个因素。如果您更改了 switch
中分支的一件事,您就完成了;如果您有一长串 if
语句,很容易漏掉一个(或多个)语句。
关于language-agnostic - 编程 101,如果 block 选择 VS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163835/