嵌套 ifs 和 ANOTHER if 语句有什么区别?
What is the difference between nested ifs and ANOTHER if statement?
假设您有一个编码部分,可以通过嵌套 if
if then
else if then
endif
endif
或另一个 if 语句
if then endif
if then endif
两者有什么区别?
回答起来有点棘手,因为您必须改进格式(最好指定一种语言)。
使用伪代码,我想你的意思是:
if condition_1 then:
action_1
else:
if condition_2 then:
action_2
end if (for condition_2)
end if (for condition_1)
对
if condition_1 then:
action_1A
else:
action_1B
end if (for condition_1)
if condition_2 then:
action_2
end if (for condition_2)
不同之处在于,在第一种情况下,condition_2 仅在 condition_1 为假的情况下进行测试。如果 condition_1 为真,则采用 action_1 并且 if 块结束。
第二种情况,先检查condition_1。如果为真,则取 action_1A。如果为假,则采用 action_1B(您的问题中缺少此 "else" 部分,并且它是可选的)。不管 condition_1,condition_2 都会被勾选。如果为真,则取action_2。
如您所见,第一个嵌套块只允许一个动作,action_1(condition_1 true)或action_2(condition_1 false,condition_2 true) 或者如果两个条件都为 false 则不执行任何操作。
在two-block的情况下,action_1和action_2是独立考虑的,如果condition_1和condition_2都为真,那么两者都会发生,这在这个嵌套示例中是不可能的。
假设您有一个编码部分,可以通过嵌套 if
if then
else if then
endif
endif
或另一个 if 语句
if then endif
if then endif
两者有什么区别?
回答起来有点棘手,因为您必须改进格式(最好指定一种语言)。
使用伪代码,我想你的意思是:
if condition_1 then:
action_1
else:
if condition_2 then:
action_2
end if (for condition_2)
end if (for condition_1)
对
if condition_1 then:
action_1A
else:
action_1B
end if (for condition_1)
if condition_2 then:
action_2
end if (for condition_2)
不同之处在于,在第一种情况下,condition_2 仅在 condition_1 为假的情况下进行测试。如果 condition_1 为真,则采用 action_1 并且 if 块结束。
第二种情况,先检查condition_1。如果为真,则取 action_1A。如果为假,则采用 action_1B(您的问题中缺少此 "else" 部分,并且它是可选的)。不管 condition_1,condition_2 都会被勾选。如果为真,则取action_2。
如您所见,第一个嵌套块只允许一个动作,action_1(condition_1 true)或action_2(condition_1 false,condition_2 true) 或者如果两个条件都为 false 则不执行任何操作。
在two-block的情况下,action_1和action_2是独立考虑的,如果condition_1和condition_2都为真,那么两者都会发生,这在这个嵌套示例中是不可能的。