新手在这里,我只是想知道我应该使用ELSE IF如下所示:
(function)
IF x==1
IF x==2
IF x==3
这就是我使用的方式,因为x不会是其他任何东西。但是,我认为如果x等于1,程序仍将运行以下代码(结果为FALSE FALSE FALSE ...)。我应该使用ELSE IF,以便它不必运行其余的吗?这会有助于表现吗?
为什么我不想使用ELSE IF?因为我希望每个代码块(IF x == n)都相似,不喜欢这个:
IF x==1
ELSE IF x==2
ELSE IF x==3
(每个ELSE IF块都是其上方块的一部分)
但程序会反复调用此函数,所以我担心性能或延迟。
答案 0 :(得分:1)
简答:如果您不需要同时处理多个条件可能属实的情况,始终使用
if (condition) {
//do something
}
else if (other_condition) {
//do something else
}
else { //in all other conditions
//default behaviour
}
答案很长:
表现可能不是一个问题。但请记住,logic errors是编程的巨大敌人,如果你实际上没有需要它能够匹配多个案例。请考虑以下情况。
if (x == 1) {
x = x + 1
}
if (x == 2) {
x = x + 2
}
if (x >= 3) {
print("Error: x should only be 1 or 2!")
}
在这种情况下,如果x >= 3
您会警告错误值,您会发现,因为您只记得处理值 1 或的 2 即可。实际上,即使x的值 1 或 2 (您认为 有效)将打印相同的错误消息!。这是因为您允许检查多个条件的可能性以及每次执行相应的代码块。请注意,这是过度简化的示例。有时,这可能是一个巨大的痛苦!特别是如果您与他人合作并共享代码,并且您的目标是使用可扩展和可维护的代码。
总而言之,如果您没有考虑过,请不要使用更简单的解决方案。转而使用完整的结果并考虑所有可能的结果(通常是最差情况情景,甚至未来功能和代码)。
最诚挚的问候!
答案 1 :(得分:0)
如果要测试的值在一次调用中能够匹配多个,那么测试每个(IF,IF,...)。
如果预计该值只匹配一个,则检查它并在找到时停止(IF,ELSE IF,ELSE IF ......)。
如果预期值是已知集合之一,则转到右侧(切换)。
答案 2 :(得分:0)
假设这是javascript,但这应该与其他任何内容大致相同。
if
语句中的代码只有在您提供的条件为真时才会运行。例如,如果您声明x = 1
,我们可以使用以下内容:
function something() {
if(x == 1) {
//do this
}
if(x == 2) {
//do that
}
if(x == 3) {
//do this and that
}
将运行第一个块,忽略其他所有块。如果第一个else-if
语句为false,则会运行if
语句。
function something() {
if(x == 1) {
//do this
}
else if(x == 2) {
//do that
}
因此,如果x == 1
为false,则会评估下一个语句。
至于表现,差异对你来说太少了。如果您需要测试许多条件,可能需要查看switch statement.