Я зависит от того, как вы их устроите. Вложенный if эквивалентен добавлению и к каждому из внутренних ifs:
if(A) {
if(B) {
statement1
}
else if(C) {
statement2
}
}
эквивалентно:
if(A and B) {
statement1
}
else if(A and C) {
statement2
}
Мой совет - стремиться к удобочитаемости и проверять логику. Законы Деморгана могут оказаться полезными для перестройки вашей логики.
Вот тот, который меня всегда раздражает:
if(A and B) {
statement1
statement2
}
else if(A and C) {
statement1
statement3
}
else if(not A) {
statement4
}
против
if(A) {
statement1
if(B) {
statement2
}
else if(C) {
statement3
}
}
else if(not A) {
statement4
}
Я просто не уверен, что более читабельно. Они логически эквивалентны. Первый более табличный и более наглядный, но повторяет оператор1; вторая более вложенная и немного уродливая (на мой взгляд), но не повторяет утверждения. В конечном счете это вызов для оценки, поскольку он не имеет значения для компилятора.