2017-01-21 8 views
0

私はこれまでに学んだことのいくつかを固めるためにcodingbat.comに関するいくつかの質問に取り組んでいます。どのように私は問題を解決したよりも。だから1つの質問のために私は以前の質問の答えで見たスタイル/形式を使用し、うまく動作するようにしましたが、私はちょうどその論理を明確にしたいだけです。返信文のJava論理演算子

は2つのint型の値を考えると、彼らは範囲の両方で30..40含まれています、または彼らは範囲を含め40..50の両方である場合はtrueを返します。ここでは

は疑問です。しかし、私はreturn文と正確にどのようにOR演算子2つのブール変数で動作上のexpplanationをしたいと思い、

public boolean in3050(int a, int b) { 
    boolean in3040 = (a >= 30 && a <= 40) && (b >= 30 && b <= 40); 
    boolean in4050 = (a >= 40 && a <= 50) && (b >= 40 && b <= 50); 

    return in3040 || in4050; 
} 

だから、この答えは働いた:

は、ここに私のコードです。また、変数の前にAND演算子またはNOTがあった場合、ステートメントはどのように動作しますか?

ありがとうございます!

+4

それがreturn文でだ完全に無関係であることと等価であるreturn ([some expression])

に相当します。これは 'boolean result = in3040 || in4050;結果を返す; '。ですから、 '||'演算子についてどのような研究をしましたか? https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.htmlを読んでいますか? –

+0

ANDを指定すると、aとbの両方が40の場合にtrueが返されます。NOTの場合、範囲の1つは除外されます。 – Lucero

答えて

1

Javaでは、論理的な用語は左から右に評価されます。これは、OR-Statementの場合:

  • を意味します。 b - > aがすでに真であれば、項全体が真でなければならず、bが評価されず、偽ならばbも真であり、その場合は両方の変数が評価される。
  • for AND-声明:& & B->すでに偽であれば、同じロジックが適用されます:B変数は

を評価する必要はありませんあなたは次のように条件付き操作を書き換える想像することができます。

if (in3040) { 
return true; 
} 
if (in4050) { 
return true; 
} 

& & - オペレーターのように見える

if (!in3040) { 
return false; 
} 
if(!in4050) { 
return false; 
} 
return true; 
1

これらの演算子は、プログラムの他のすべての場所と同じようにreturnステートメントで正確に動作します。

0

等価

return [some expression]はこのように、return in3040 || in4050;return (in3040 || in4050);

+0

声明と表現が混乱しています。 –