0

私はこれが何であるかを理解するのに苦労しています!このwhileループではそうです。ブール値が反転することは知っていますが、それによってループがどのように終了するのでしょうか。それが偽の場合、それはそれを真に切り捨て、それが真の場合、それはそれを偽に変えますか?

            String userChoice;
            do
            {

                userChoice = select.promptChoice();


            } while ( !select.isValidChoice(action ) );
4

4 に答える 4

4

actionが有効な選択になるまで、ループが続きます。

とはいえ、コードサンプルにはへの変更は示されていませんaction

于 2012-05-25T12:48:27.143 に答える
2

ループは次のように変換されます。選択が有効でない場合は、ユーザー入力を再度要求します。

選択が有効な場合、ループは終了します。これは、whileループの条件の否定です(無効でない場合は有効です)。

于 2012-05-25T12:48:34.857 に答える
0

それは「ない」という意味です。この場合、「NOTは有効な選択です」、または英語では「有効な選択ではありません」と言っています。

この場合のループは、選択が有効になるまでユーザーにプロンプ​​トを表示し続けます。

!!は単にNOTと言うために使用されます。特定の場合は、と言うのと同じisValidChoice == falseです。理解を深めるために、これらのことを平易な英語で考えてみてください。

そうは言っても、!を使用する必要はありません。自然に聞こえない場合。これは、!を使用して自然に聞こえる音の例です。

bool happy = true;

if(!happy)
{
   cry();
}

else
{
   smile();
}

使用するのが自然に聞こえるかどうかは、コードに最適なものによって異なります。その後、それを使用します。それ以外の場合は使用しないでください。

編集:どちらの場合でも、結果が。の場合、ループは中断されますFALSE。!!ブール値を直接変更していません。

于 2012-05-25T12:48:06.293 に答える
0

英語で:

select.isValueChoice(action)戻りますがfalse!trueuserChoice = select.promptChoice();

の理由は、を返す!ときにループが終了するためです。isValidChoicetrue

于 2012-05-25T12:49:45.240 に答える