2017-06-28 6 views
0

条件を条件内に入れられるかどうかを理解しようとしています。何らかの値が真の場合にのみ、条件内の条件のアカウント部分を取り込む方法

if (a == 1 && if (b == 1) { c >= 5 }) 
    { 
    /// process 
    } 

だから、条件c >= 5だけで、プロセスのために考慮されなければならない:例えば、私が間違って非現実的なコードを示したが、私は余分な言葉なしのために求めているものを理解することは明らかだ下記

caseがb == 1の場合は、別の条件で別の関数を使用せずに、条件の後に条件として1つのステートメント内に存在する必要があります。

質問条件内のアカウントにconditionの一部を入れるには、ある値がtrueの場合のみ、falseの場合は避けて、a == 1を読み取ります。以下の回答に基づいて

EDIT:

  int a = 1; 
      int b = 0; 
      int c = 6; 

      if (a == 1 && (b != 0 || c >= 5)) 
      { 
       Console.WriteLine("yes"); 

       if (c > 5) 
       { 
        Console.WriteLine("taken into the account"); 
       }     
      } 
      else 
      { 
       Console.WriteLine("no"); 
      } 

は、両方の場合においてint b = 1;int b = 0;結果は:

yes 
taken into the account 

所望の結果:int b = 1;の場合

yes 
taken into the account 

int b = 0;の場合:== 1が真と評価されない場合== 1が評価されないようにB

yes 

答えて

0

C#の& &においては、短絡動作です。

1
if (a == 1 && (b != 1 || c >= 5)) 

ここで、c >= 5は、b==1の場合のみ評価されます。

+0

解決策を理解しようとしています。どのようにb!= 1になり、OR条件が満たされていればc> = 5だけ評価されますか?私はちょうどあなたの解決策を理解したい:) –

+0

@ErenErsönmezこんにちは、私はあなたの解決策に基づいて私の質問を編集しており、この場合は正しいと思われるが、今私は尋ねているものを理解するためには明らかです –

+0

@rayhoあなたの編集が間違っています。 '考慮された'というのは 'c> = 5'のために常に発生します。評価されるif条件とは何の関係もありません。あなたの望む結果は '' int b = 0の場合、それは考慮に入れて印刷すべきではありません。これは不可能です。なぜなら、 '考慮された'という条件は、最初の条件文の中に入ると 'c'に依存するからです。 – Rob

関連する問題