While语句在JS中如何工作?

时间:2018-12-06 19:03:38

标签: javascript loops while-loop

我正在代码学院学习JS,到目前为止进展顺利。

但是在一个特定的练习中,有一个我无法理解的步骤。我解决了这个问题,并勾选了所有3个运动步骤,但结果却出乎我的意料,所以我想知道是否有人可以帮助我?

我正在练习的每一步,然后是我所做的。

最后,我将放置控制台记录的内容。

1。 在cards数组下,使用let关键字声明一个变量currentCard,但不要为其分配值。

const cards = ['diamond', 'spade', 'heart', 'club'];

// Write your code below
let currentCard;

2。 创建一个带有条件的while循环,该条件检查currentCard是否不具有该值“ spade”。 在while循环的块内,添加以下代码行:

currentCard = cards [Math.floor(Math.random()* 4)];

Math.floor(Math.random()* 4)将给我们一个从0到3的随机数。 我们将使用此数字来索引cards数组,并将currentCard的值分配给该数组中的随机元素。

const cards = ['diamond', 'spade', 'heart', 'club'];

// Write your code below
let currentCard;

while ( currentCard != 'spade') {  
  currentCard = cards[Math.floor(Math.random() * 4)];  
}

3。 太棒了!您的循环正在运行,但是您无法分辨,因为它没有输出任何内容。让我们在while块中添加console.log()语句。在块内,为currentCard分配新值后,将currentCard记录到控制台。

为了娱乐,您可以运行几次代码,看看输出如何变化!

const cards = ['diamond', 'spade', 'heart', 'club'];

// Write your code below
let currentCard;

while ( currentCard != 'spade') {
  currentCard = cards[Math.floor(Math.random() * 4)];
  console.log(currentCard);
}

这就是控制台记录的内容:


俱乐部




每次我登录控制台时,都会出现“铲子”,并且想法是控制台不记录“铲子”。

我希望有人可以在这里为我提供帮助,并为每个人提供快乐的编码。

1 个答案:

答案 0 :(得分:1)

在循环开始时而不是在循环开始时检查循环条件。

请尝试执行此操作,以免在控制台中看到任何“锹”:

const cards = ['diamond', 'spade', 'heart', 'club'];

// Write your code below
let currentCard;

currentCard = cards[Math.floor(Math.random() * 4)];

while ( currentCard != 'spade') {
  console.log(currentCard);
  //Assigning a new value AFTER the console.log assures it will be
  //checked against the while condition before console.log hits again
  currentCard = cards[Math.floor(Math.random() * 4)];
}