对于课堂上的作业,我们的任务是使用hint()获取用户输入。我只希望提示接受3个值中的1个。

这是我的代码:

ounce = prompt ( "What size would you like your drink?\n8oz, 12oz, 16oz are the available sizes." );

    while ( ounce!= "8oz" || ounce != "12oz" || ounce != "16oz")
{
        alert ( "Please select a proper size: 8oz, 12oz, 16oz" );
        prompt ( "What size would you like your drink?\n8oz, 12oz, 16oz are the available sizes." );
}


我的意图是,当用户输入8oz,12oz或16oz以外的任何其他内容时,它将告诉他们该大小不可用,并且提示他们再次询问其大小,直到输入这些值之一为止。但是,目前的代码无法正常工作。即使我输入8盎司也说不正确,然后再次要求我输入我的尺码。您可以告诉我,我是新手入门课程的新手,因此感谢您的帮助。

最佳答案

您需要使用AND条件...仅当输入值不是三个值之一时才需要进入循环,如果使用OR则即使您输入了一个有效值,比较操作中的两个也会被证明是true ...就像您输入8oz一样,ounce != "12oz"ounce != "16oz"都将为true。由于OR运算对任何一个条件为true都返回true,它将进入循环。

如果使用AND条件,则仅在满足所有三个条件时才执行循环,因此,如果输入有效值(例如12oz),则条件ounce != "12oz"将返回false,从而导致整体条件失败,因此退出循环。

ounce = prompt ( "What size would you like your drink?\n8oz, 12oz, 16oz are the available sizes." );

while ( ounce!= "8oz" && ounce != "12oz" && ounce != "16oz")
{
        alert ( "Please select a proper size: 8oz, 12oz, 16oz" );
        ounce  = prompt ( "What size would you like your drink?\n8oz, 12oz, 16oz are the available sizes." );
}


演示:Fiddle

09-25 17:13