если / еще или двойной если? - PullRequest
1 голос
/ 14 мая 2011

Есть ли разница между использованием double (или triple, ..) если вместо ветви if / else, например

if(a==b)
{}
else if(a==c)
{}
else if(a==d)
{}

if(a==b)
{}
if(a==c)
{}
if(a==d)
{}

Спасибо

Ответы [ 3 ]

5 голосов
/ 14 мая 2011

Да, есть разница. В первом случае оценка будет остановлена, если одно из условий будет выполнено, а другие не будут оцениваться, тогда как во втором случае все условия будут оценены независимо от того, выполнено ли одно из них.

3 голосов
/ 14 мая 2011

в этом случае

if ( conditional ) {
    //do stuff
}
else if ( conditional {
    //do stuff
} ... 

Система проверяет условия до тех пор, пока не найдет истинное значение, а затем выполняет работу.

В этом случае:

if ( conditional ) {
    //do stuff
}
if ( conditional ) {
    //do stuff
}

Система проверяет каждое условие каждый раз.

2 голосов
/ 14 мая 2011

Второй проверит все условия, и если, например, a, c и d будут равны, то будут выполнены оба значения if(a==c) {} и if(a==d) {}.

Первый из них оторвется от других проверок при выполнении одного из условий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...