If statement 如果需要,我应该用别的吗?为了更好的表现?
这里是新手,我只是想知道我是否应该使用ELSE IF来执行以下操作:If statement 如果需要,我应该用别的吗?为了更好的表现?,if-statement,If Statement,这里是新手,我只是想知道我是否应该使用ELSE IF来执行以下操作: (function) IF x==1 IF x==2 IF x==3 这就是我正在使用的方法,因为x不会是其他任何东西。但是,我认为如果x等于1,程序仍将运行以下代码(结果为FALSE…)。如果是这样的话,我应该使用ELSE吗?它不必运行其余的?这对表演有帮助吗 如果有,我为什么不想用别的?因为我希望每个代码块(如果x==n)相似,不像这样: IF x==1 ELSE IF x==2 ELSE IF x==3 (如果块是其
(function)
IF x==1
IF x==2
IF x==3
这就是我正在使用的方法,因为x不会是其他任何东西。但是,我认为如果x等于1,程序仍将运行以下代码(结果为FALSE…)。如果是这样的话,我应该使用ELSE吗?它不必运行其余的?这对表演有帮助吗
如果有,我为什么不想用别的?因为我希望每个代码块(如果x==n)相似,不像这样:
IF x==1
ELSE IF x==2
ELSE IF x==3
(如果块是其上方块的一部分,则各块之间)
但是程序会重复调用此函数,因此我担心性能或延迟。如果被测试的值预计能够在一次调用中匹配多个值,则测试每个值(如果,如果…)。
如果期望值仅与一个匹配,则检查该值并在找到它时停止(If、ELSE If、ELSE If…。
如果期望值是已知集合中的一个,则直接转到该集合(开关)。假设这是javascript,但对于其他任何内容,这应该大致相同
if
语句中的代码只有在您提供的条件为true时才会运行。例如,如果您声明x=1
,我们可以有如下内容:
function something() {
if(x == 1) {
//do this
}
if(x == 2) {
//do that
}
if(x == 3) {
//do this and that
}
将运行第一个块,而忽略其他所有内容。如果第一个if
语句为false,则将运行else if
语句
function something() {
if(x == 1) {
//do this
}
else if(x == 2) {
//do that
}
因此,如果x==1
为false,则将计算下一条语句
至于表现,差别太小,你根本不在乎。如果您有许多条件需要测试,您可能需要查看一个简短的回答:如果您不需要处理多个条件可能同时为真的情况,始终使用
if (condition) {
//do something
}
else if (other_condition) {
//do something else
}
else { //in all other conditions
//default behaviour
}
长答案:
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(您认为有效),也会打印出相同的错误消息。这是因为您允许检查多个条件,并且每次都执行相应的代码块。请注意,这是一个过于简化的示例。有时,这可能是一个巨大的痛苦!特别是如果您与其他人协作,共享代码,并且您的目标是可消耗和可维护的代码
总之,如果你没有仔细考虑,不要使用更简单的解决方案。取而代之的是完整的,并考虑所有可能的结果(通常是最坏的情况场景,甚至未来的功能和代码)
致以最良好的祝愿 您还应该标记您的问题,以指示您正在使用的语言,但一般来说,担心这种事情就是我们所说的“过早优化”——如果您确实获得了任何性能提升,那么它们可能在几乎所有正常编程场景中都是不相关的。(我做性能非常敏感的游戏编程,我从不担心这一点…)是的,编译器将检查所有
IF
s,因为它们彼此独立IF-ELSE
会更好,我想。。。顺便问一下,为什么不使用开关
?我认为您应该在很大程度上关注可读性和维护。以最能表达您的意图和问题域的方式编写代码,并且最不可能绊倒未来的维护人员。让编译器担心优化代码。