2016-06-01 2 views
-4

У меня есть следующие функции:если условие наилучшей практики

if(A==B) 
{ 
    //do stuff 
} 

if(C==B) 
{ 
    //do stuff 
} 

if(A==B) 
    { 
     //do stuff 
    } 
    else if(C==B) 
    { 
    //do stuff 
} 

В чем разница между этими двумя? Я понимаю смысл этого, но я видел, как программисты предпочитают первый, а не второй. Зачем?

Я лично предпочитаю второй.

+0

слово? надеюсь, что вы шутите? –

+0

ОК! Я понимаю? это не имеет никакого отношения к вопросу! для вашей любезной информации, я изменю его –

+0

@ C0dekid оба одинаковы !!! –

ответ

0

Это главным образом вопрос предпочтения. Я видел много программистов, использующих оба случая, независимо от фактической функции.

Но правильно используйте первый случай, если вы хотите, чтобы оба условия были жесткими, а второй - вложенным.

В первом случае, как будет выполнен, что делает его медленнее, чем второй, поскольку он проверяет только для elseif, если условие if ложно


$var = 1; 

if($var+1 ==2) 
{ 
    echo "test1"; 
} 

if($var-0==1) 
{ 
    echo "test2"; 
} 


if($var+1==2) 
{ 
    echo "test1"; 
} 
else if($var-0==1) 
{ 
    echo "test2"; 
} 

выведет

test1test2test1 

поэтому мы видим, что номер 2 игнорирует elseif, что делает его быстрее.

+0

Оба одинаковы: 2-й пример: я не перерыв; или его остановка –

+0

оказывает ли это какое-либо влияние на производительность? –

+0

Минимальный, см. Править – TechTreeDev

0

В первом условии оба утверждения исключены, поскольку они независимы друг от друга, поэтому все они будут протестированы.

if(A==B) 
{ 
    //do stuff 
} 

if(C==B) 
{ 
    //do stuff 
} 

В второй еще, если только вложенным, если внутри другого, так что только одна воля них будет испытываться, либо если и ElseIf

if(A==B) 
{ 
    //do stuff 
} 
else if(C==B) 
{ 
    //do stuff 
} 
+0

Если 'A! = B', код внутри if не выполняется, тест выполняется. Любой оператор получает тест до тех пор, пока не будет оценено значение true/all conditions failed – AUsr19532

0

не то же самое.

else if (C == B) не будет выполнен (даже если C равно B), если первое условие было истинным.

без «другого», только если (C == B) будет выполняться, даже если первое условие верно (в этом случае A == C :)

0

Если только одна переменная равна и нужно запустите тот же код независимо от того, лучше ли использовать первый код, чтобы не было потери производительности. Но если вам нужно запустить другой код в зависимости от вашей переменной, то второй лучше.