对于课堂上的作业,我们的任务是使用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