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

循环转换为:如果选择无效,则再次要求用户输入。

The loop exits when the selection is valid, which is negation of the condition in the while loop (not of not valid is valid).

于 2012-05-25T12:48:34.857 回答
0

它的意思是“不”。在这种情况下,它是说“不是有效的选择”,或者在英语中是“不是有效的选择”。

这种情况下的循环将继续提示用户,直到选择有效。

这 !用于简单地说NOT,在您的特定情况下,它与说相同isValidChoice == false,您应该尝试用简单的英语来思考这些事情,以便更好地理解它们。

话虽如此,您不需要使用 ! 如果听起来不自然。这是一个使用 ! 听起来很自然的例子。

bool happy = true;

if(!happy)
{
   cry();
}

else
{
   smile();
}

这取决于什么最适合您的代码,如果听起来自然使用!然后使用它,否则不要。

编辑:在任何一种情况下,如果结果是FALSE. 这 !没有直接改变你的布尔值。

于 2012-05-25T12:48:06.293 回答
0

用英语讲:

虽然select.isValueChoice(action)返回false( !true) 做userChoice = select.promptChoice();

的原因是在返回!时循环退出。isValidChoicetrue

于 2012-05-25T12:49:45.240 回答