显然,嵌套的if语句是允许的。所以似乎可能适合他们使用。每个人都讨厌他们,我想知道是否有时候嵌套if语句是最好的行动方案。以下是我认为最好使用嵌套语句的示例:
if (A){
//Code for A
if (B){
//Code for B
} else {
//Code for !B
}
//More A Code
} else {
//Code for !A
if (C){
//Code for C
} else {
//Code for !C
if (D){
//code for D
}
}
}
如果我试图不嵌套此代码,则结果如下:
if (A&&B){
//Code for A
//Code for B
//More A Code
}
if (A&&!B){
//Code for A
//Code for !B
//More A Code
}
if (!A&&C){
//Code for !A
//Code for C
}
if (!A&&!C&&D){
//Code for !A
//Code for !C
//Code for D
}
if (!A&&!C&&!D){
//Code for !A
//Code for !C
}
这一开始看起来更干净,直到你真正把代码放在那里并且有冗余,这是一场噩梦。
if (A){
//Code for A
}
if (A&&B){
//Code for B
}
if (A&&!B){
//Code for !B
}
if (A){
//More A Code
}
if(!A){
//Code for !A
}
if(!A&&C){
//Code for C
}
if(!A&&!C){
//Code for !C
}
if(!A&&!C&&D){
//Code for D
}
这种方式不使用嵌套语句,并且不需要重写代码,但它会过度使用条件并且if()实例比原始实例多。此外,你必须做更多的阅读而不是略读,看看只有在A是真的情况下才会评估B.如果你在底部放置一个if(A&&C)
或者其他东西,那就很难维持。
嵌套if语句对我来说似乎是最合理的,因为它们的if()
实例最少。我不明白为什么每个人都讨厌嵌套的if语句。有没有人有更实际的方法来编写这段代码?或者我是否误解了人们对嵌套ifs的意义?似乎关于嵌套ifs的每个问题在第一层中都没有代码,例如:
if(A){
if(B){
//Do Something
} else {
//Do Something Else
}
} else {
//Do Third thing
}
等等......不,那个人仍会使用更多的if()
实例来尝试缩短它。我想到的particular example有两个相同的陈述。 Anywho,是适当的嵌套if语句的这些例子,还是有更好/更清晰/更清洁/更快/更标准的编写代码的方式?
答案 0 :(得分:0)
如果不需要,嵌套的if语句会被讨厌。通常有一些方法可以将它们转换为更少的complex代码,有时候并不明显,但仍然可能。如果您的问题是essentially complex,那么嵌套的if语句可以完全编码。