2015-10-04 2 views
0

, как можно было бы написать следующий код:Устранить избыточность из цикла, если

if(Conditon 1){ 
      # code block 1... 

      // another if condition 
      if($device!=null){ 
       # code block 2... 
      }else{ 
       # <code block X> 
      } 
}else{ 
      # <code block X> 
} 

Так вот # <code block X> это же в двух местах, как я могу устранить избыточность?

+1

переместить его в отдельную функцию и вызов что? –

ответ

3

Общий подход: выяснить предпосылки для каждого блока должны быть выполнены:

  • блок кода : Condition1
  • блок кода : Condition1 && $device!=null
  • блок кода х: !Condition1 || !($device!=null)

Предпосылки для блока 2 является противоположностью предпосылки для блока х: !(a && b) = !a || !b, поэтому они подходят для перехода в if-else:

if(Conditon1){ 
    # code block 1... 
} 
if(Conditon1 && $device!=null){ 
    # code block 2... 
} else { 
    # <code block X> 
} 
0
//A variable to store true/false 
var a = true; 
if(Conditon 1){ 
    # code block 1...  
    // another if condition 
    if($device!=null){ 
    # code block 2... 
    a =false; 
    } 
} 
if(a){ 
# <code block X> 
} 
1
if(Conditon 1){ 
      # code block 1... 

      // another if condition 
      if($device!=null){ 
       # code block 2... 
      } 
} 

if (!Condition1 || $device==null){ 
    # <code block X> 
} 
Смежные вопросы