除了性能之外,我想知道在某些情况下是否只能使用If语句而不是Switch语句,反之亦然?
因为它们是完全可以互换的吗?我可以将整个代码段从Switch语句交换到If语句,反之亦然,如果我愿意或者会破坏特定程序吗?
不是因为我是Coding的新手而且出于好奇心而且出于好奇而我想要的只是理论上和想知道这一点。
我无法找到我想要的答案,所以如果这是重复的话我会道歉。
答案 0 :(得分:4)
它们可以做的事情根本不同 - import signal
signal.signal(signal.SIGSEGV, myFunctionToHandleSEGV)
# ...
语句可以检查任何可以以某种方式提取到if
值的逻辑,而boolean
语句可以比较确切的值每种情况 - 有关详细信息,请参阅the docs。
if-then-else语句可以根据值或条件的范围测试表达式,而switch语句只根据单个整数,枚举值或String对象测试表达式。
这意味着如果你想做更复杂的逻辑,而不是“这个值等于这个数字,枚举或字符串”,你需要switch
语句(或其他一些管理流程的方式)而不是if
。
一个简单的例子是检查数字是否超过10但低于9000。
switch
将此转换为switch语句意味着做一些疯狂的事情就像每个可能的值大于10但低于9000的情况一样