-5

以下に示すように、クラスのメソッド内にいくつかのif...else条件を入れ、この条件がいつ実行されるかをコメントで書きました。

メソッド条件内の私のロジックdef() ifが正しいかどうかを教えてください。また、実行された条件が残りの条件をチェックするかどうかも教えてください。

class abc
{
  private static SUCCESS = 1;
  private static FAILURE = 2;

  public void int def()
  {
    if (a=20 && b==30)
    {
        if (c==30 && d==40)  // nesting IF condition will go if a=20 & b=30
        { // do something
          return SUCCESS; // IF this condion is met will it check remaing conditions or not
        }
        else
        {
          return FAILURE; // IF this condion is met will it check remaing conditions or not
        }
    }
    else if( g==50 && d==60)
    {
      // do something
      if (t==56 && p==98) // nesting IF condition will go if g=50 & d=60
      {
        // do something
        return SUCCESS; // IF this condion is met will it check remaing conditions or not
      }
      return FAILURE; // IF this condion is met will it check remaing conditions or not
    }
    else
      return FAILURE; // default return means if any othe if or else if block is satisfied then this default value will be returned from the method
  }
}
4

3 に答える 3

0

それは同じはずです

if ((a==20 && b==30 && c==30 && d==40) || (g==50 && d==60 && t==56 && p==98))
    return  SUCCESS; 
else
    return  FAILURE;
于 2013-01-08T03:41:10.787 に答える
0

あなたが等しいものを逃しているなら、最初に

if (a==0 && b==30)

両方の if で、必要のない行を避けるために、else ワード (および括弧) を削除できます。

于 2013-01-08T03:41:22.417 に答える
0

ロジックがどのように機能するかについて仕様を提供していないため、ロジックが正しいかどうかはわかりません。

ただし、少なくとも 1 つの問題がある可能性があります。

if (a=20 && b==30)

それ=はほぼ確実に==.

さらに、次のようなものを生成する考え方から抜け出せば、コードをより簡単に理解できるようになります。

if (something)
    return something;
else
    do_something_else;

それを次のように変更すると、読みやすさが大幅に向上します。

if (something)
    return something;
do_something_else;

特にあなたのように複数のレイヤーがある場合。

あなたのコメントに関して:

この条件が満たされている場合、残りの条件をチェックします。

答えはノーだ。関数から離れた瞬間にreturn、その関数内のそれ以上のコードは実行されません。

于 2013-01-08T03:41:46.043 に答える