2017-04-25 11 views
0

「しながら、」私は入力番号を受け入れ、整数配列に番号と比較し、値が見つかった場合に応じて、trueまたはfalseを返すメソッドを持っています。このメソッドは正常に動作しますが、コード内でコードの解釈に問題があります。具体的にはwhileステートメント(!found && index < accounts.length)です。私の脳がこれを解釈する方法は、「間違ったANDが見つからない間はインデックスは口座配列の長さよりも小さい」というものですが、!foundの部分を<とどのように比較できるのか分かりません。完全な方法は以下の通りです。Javaは:理解していない。この状態

public static boolean account(int input) { 
    // account array 
    int accounts[] = { 5658845, 4520125, 7895122, 8777541, 4581002 }; 

    // Loop control variable 
    int index = 0; 

    // Search results 
    boolean found = false; 

    // Search the array. 
    while (!found && index < accounts.length) { 
     if (accounts[index] == input) { 
      found = true; 
     } 
     // Increment index 
     index++; 
    } 

    // Return result of search 
    return found; 

} 
+0

あなたが要素にマッチしたので。 'found'変数は必要でもありません。 –

+0

@ theProgrammer101技術的に言えば、「while」はキーワードとステートメントです。 – EJP

+0

@EJPあなたは条件文の中で電話をしますか? – CodingNinja

答えて

1

私の脳は「FOUNDが偽ではなく、インデックスはアカウントの配列の長さよりも小さいながら」

見つけながら」としてあなたの脳はそれを解釈すべきであるとして、これはどのように解釈しますtrue ANDインデックスがaccounts配列の長さよりも小さいです。

whileループは、accountsのすべての要素のいずれかが検索された又は一致するアカウントが見つかったときに終了します。

+0

第1部が間違っている、見つかった値が偽の値 – CodingNinja

0

あなたの方法は、accounts配列にint inputを探します。ループブレイク中にinputと同じ値が見つかった場合、メソッドはtrueを返します。

whileステートメント:ループまでfoundが偽で、indexaccounts.length未満です。

0

!foundfalseに設定ブール値を指します。

ので、括弧の中に、私たちは「偽及び売掛金の配列の長さよりも小さいインデックスではない」、「真のアカウントの配列の長さよりも小さいインデックス」に相当する

を持っています。

インデックスは値に設定されます。最初は0です。口座の長さの配列が5であるとしましょう。次に、「0は5未満です」とします。このステートメントは数学的に真であるため、ブール値trueに評価されます。

次に、私たちのステートメントは論理的に真である "真と真"に単純化されています。 whileループのコンテキストでは、while (true)があり、whileループを実行します。

希望があれば、さらに詳しい説明が必要な場合はお知らせください。

1

<!foundには該当しません。indexaccounts.length()にのみ適用されます。 !foundおよびindex < accounts.lengthは、2つの異なる別々の条件である。ループを実行するには両方とも真でなければなりません。あなたが理解するのを助けるならば、そのような行を書くことができます。見つからが真でないながら

  1. found真の値を保持するだろうが、それは!によって否定された)

と:

while ((!found) && (index < accounts.length)) { 

この行は、2つのことを言っています

  1. index以下accounts.length

それは括弧の内部制御ブロック内にあるものは何でも実行される(しかし、多くのメンバーがaccounts配列である)です。

+0

@EddyZavalaあなたにはっきりしていることを願っています。私はそれを分解し、問題を完全に説明しながら、できるだけ簡単に答えを出しました。 – CodingNinja

+0

コメントしてくださいご質問がある場合は下記をご覧ください – CodingNinja

0

しかし、私は見つけた部分が<とどのように比較できるのか分かりません。

!オペレータは、以上の& &オペレータ発見の値が最初に否定され、その後、インデックスとアカウント列の長さの値は、このようなこと.Consider <演算子と比較されて:あなたは `true`をするとすぐに返すことができ

(!found) && (index < accounts.length) 
関連する問題