1

私はいくつかの if-else 句に苦労しており、ロジックを設定する方法についてアドバイスが必要です。

次のコードがあります。

//if isset a or b
if (isset(a) || isset(b) ) {
        //if isset a
    if (isset(a)) {
            switch(a) {
                case '1' : $num = '1';
                break;
                case '2' : $num = '2';
                break;
                case '3' : $num = '3';
                break;
            }
    //if not isset a check b for $num
        } else if (isset(b)) {
            switch(b){
                case '1' : $num = '1';
                break;
                case '2' : $num = '2';
                break;
                case '3' : $num = '3';
                break;
            }
        }
//if not isset a and b, set default 
} else {
        $num = '1';
    }

問題は、else/else if を使用するタイミングがわからなかったことです。したがって、そのコードとコメント行が正しいかどうかを知りたいです。

どうもありがとう。

4

4 に答える 4

2

一般に、if-else 構造が複雑すぎる場合 (中括弧が 2 レベル以上) は、分割統治アプローチに最適な時期です。分割された問題を解決する関数を作成します。

  1. これは正しいですが、あなたの構造は受け入れられます。ほとんどのプログラマーはこれが変更されることを望みますが、この方法で快適に作業でき、それを理解していれば、それでも機能します。
  2. 次に、else if (isset(b))両方を設定できるかどうかに基づいて、必要な場合とそうでない場合があります。できない場合は、 yourelse if (isset(b))をに置き換えるだけelseです。

わかりました、これが必要かどうかわかりませんがif、 、else if、およびについて簡単に説明しelseます。

if (condition)条件が真か偽かをテストするために使用されます。{true の場合、との間のコード}が実行されます。そうでなければ、そうではありません。

else if上記ifの条件が false である必要があります。ifの条件が false であるが、次のいずれかelse ifが true の場合、それがelse if実行されます。

最後に、すべてのifandelse ifの条件が false を返した場合、elseのコードが実行されます。

お役に立てれば。

于 2013-05-27T19:31:40.617 に答える
1

次の方法を使用して、多くの制御フローの問題を回避できます。

if(isset(a)) {
    $num = a;
} else if(isset(b)) {
    $num = b;
}

$arr = array('1', '2', '3');
if(!in_array($num, $arr)) {
    $num = '1';
}
于 2013-05-27T18:50:01.723 に答える
0
//default
$num = '1';

if(isset(a)) {
  $num = a;
} else if(isset(b)) {
  $num = b;
}
于 2013-05-27T18:53:20.380 に答える