如何减少嵌套的if-else条件?

时间:2013-05-14 08:35:21

标签: php if-statement nested reduce

我在代码中做了很多嵌套的if-else条件。这是我做的大约34次。你知道,这真的让我发疯了。请告诉我如何减少它。谢谢。

这里是我的代码:

if ($input_age > $age_min && $input_age <$age_max){
 if ($input_heigh > $heigh_min && $input_heigh < $heigh_max){
    if ($input_ds == "yes" && $ds_val=="yes" ){ 
    //some calculation
    }
    else if ($input_ds == "no" && $ds_val=="yes"){ 
    //some calculation

    }
    else if ($input_ds == "yes" && $ds_val=="no"){ 
    //some calculation

    }
    else if ($input_ds == "no" && $ds_val=="no"){ 

    //some calculation  

    }
}
else if ($input_heigh < $heigh_min || $input_heigh > $heigh_max){
    if ($input_ds == "yes" && $ds_val=="yes" ){
    //some calculation

    }
    else if ($input_ds == "no" && $ds_val=="yes" ){ 
    //some calculation

    }

    else if ($input_ds == "yes" && $ds_val=="no"){ 
    //some calculation

    }
    else if ($input_ds == "no" && $ds_val=="no" ){ 
    //some calculation

    }
}

以及更多if-else conditon

1 个答案:

答案 0 :(得分:2)

我建议在这种情况下使用switch,它更具可读性。这是一个简单的例子:

switch($input_ds.$ds_val){
   case 'yesyes':
      //some calculations
      break;
   case 'yesno':
      //some calculations
      break;
   case 'noyes':
      //some calculations
      break;
   case 'nono':
      //some calculations
      break;
}