Resumo : neste tutorial, você aprenderá como usar a do...while
instrução JavaScript para criar um loop que executa um bloco até que uma condição seja false
.
Introdução à instrução JavaScript do…while
A do...while
instrução loop cria um loop que executa um bloco até que uma condição seja avaliada como false
. A instrução a seguir ilustra a sintaxe do do...while
loop:
do {
statement;
} while(expression);
Linguagem de código: JavaScript ( javascript )
Ao contrário do while
loop, o do-while
loop sempre executa statement
pelo menos uma vez antes de avaliar o expression
.
Como o do...while
loop avalia a expressão após cada iteração, ele costuma ser chamado de loop pós-teste.
Dentro do corpo do loop, você precisa fazer alterações em algumas variáveis para garantir que isso expression
ocorra false
após algumas iterações. Caso contrário, você terá um loop indefinido.
Observe que começando com ES6+, o ponto e vírgula ( ;
) após while(expression)
é opcional. Então você pode usar a seguinte sintaxe:
do {
statement;
} while(expression)
Linguagem de código: JavaScript ( javascript )
O fluxograma a seguir ilustra a do-while
instrução de loop:
Na prática, você costuma usar a do...while
instrução quando deseja executar o corpo do loop pelo menos uma vez antes de verificar a condição.
Exemplos de instruções JavaScript do while
Vejamos alguns exemplos de uso da do...while
declaração.
1) Exemplo simples de instrução do while em JavaScript
O exemplo a seguir usa a do...while
instrução para gerar cinco números de 0 a 4 no console:
let count = 0;
do {
console.log(count);
count++;
} while (count < 5)
Linguagem de código: JavaScript ( javascript )
Saída:
0
1
2
3
4
Neste exemplo:
- Primeiro, declare e inicialize a
count
variável com zero. - Segundo, mostre
count
e aumente seu valor em um em cada iteração até que seu valor seja maior ou igual a 5.
2) Usando a instrução JavaScript do while para fazer um jogo simples de adivinhação de números
O exemplo a seguir usa a do...while
instrução para gerar um jogo de adivinhação de números.
O script gera um número inteiro aleatório entre 1 e 10. E você tem que fazer uma série de suposições até que seu número corresponda ao número aleatório.
// generate a secret number between 1 and 10
const MIN = 1;
const MAX = 10;
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
let guesses = 0; // for storing the number of guesses
let hint = ''; // for storing hint
let number = 0;
do {
// get input from user
let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);
// get the integer
number = parseInt(input);
// increase the number of guesses
guesses++;
// check input number with the secret number provide hint if needed
if (number > secretNumber) {
hint = ', and less than ' + number;
} else if (number < secretNumber) {
hint = ', and greater than ' + number;
} else if (number == secretNumber) {
alert(`Bravo! you're correct after ${guesses} guess(es).`);
}
} while (number != secretNumber);
Linguagem de código: JavaScript ( javascript )
Como funciona.
Primeiro, declare as constantes MIN e MAX e inicialize seus valores como 1 e 10:
const MIN = 1;
const MAX = 10;
Linguagem de código: JavaScript ( javascript )
Segundo, use Math.random()
a função para gerar um número aleatório de ponto flutuante com valor no intervalo de 0 e 1 (incluindo zero, mas não um).
Para gerar um número aleatório entre MIN e MAX (exclusivo), você usa a seguinte expressão:
Math.random() * (MAX - MIN + 1)
Linguagem de código: JavaScript ( javascript )
No entanto, o resultado é um número de ponto flutuante. Portanto, você precisa usar a Math.floor()
função para convertê-lo em um número inteiro:
Math.floor(Math.random() * (MAX - MIN + 1))
Linguagem de código: JavaScript ( javascript )
Para gerar um número aleatório entre mínimo e máximo, você usa a seguinte expressão:
let secretNumber = Math.floor(Math.random() * (MAX - MIN + 1)) + MIN;
Linguagem de código: JavaScript ( javascript )
Terceiro, defina três variáveis para armazenar o número de suposições, dicas e o número de entrada do usuário:
let guesses = 0; // for storing the number of guesses
let hint = ''; // for storing hint
let number = 0;
Linguagem de código: JavaScript ( javascript )
Quarto, use a input()
função para obter a entrada do usuário:
let input = prompt(`Please enter a number between ${MIN} and ${MAX}` + hint);
Linguagem de código: JavaScript ( javascript )
Observe que a input()
função funciona apenas em navegadores da web. Se você executar o código em outro ambiente, como node.js, verifique a função correspondente.
A input()
função retorna uma string, portanto, você precisa usar a parseInt()
função para convertê-la em um número inteiro:
number = parseInt(input);
Linguagem de código: JavaScript ( javascript )
Quinto, aumente o número de suposições em cada iteração:
guesses++;
Sexto, verifique o número de entrada com o número secreto (aleatório) e dê uma dica. Se os números corresponderem, mostre a mensagem usando a alert()
função:
if (number > secretNumber) {
hint = ', and less than ' + number;
} else if (number < secretNumber) {
hint = ', and greater than ' + number;
} else if (number == secretNumber) {
alert(`Bravo! you're correct after ${guesses} guess(es).`);
}
Linguagem de código: JavaScript ( javascript )
Sétimo, execute a próxima iteração até que o número corresponda ao número secreto.
while (number != secretNumber);
Linguagem de código: JavaScript ( javascript )
Resumo
- Use a
do…while
instrução para criar um loop que executa um bloco de código até que uma condição sejafalse
.