Para verificar se já existe um ingrediente repitido eu utilizei o for
dentro do while, até aí tudo bem. Mas o que rolou é que quando eu digito um ingrediente repetido eu usava o break;
o que parava o looping e esquecia de realizar até o que vinha depois dele, portanto, retirei o break, pensei ("E se eu conseguisse fazer com que o código fosse 're-lido' para eu conseguir entrar um ingrediente válido?"), então pesquisei e encontrei o continue
, mas para usá-lo prefiri nomear o while para não ter dor de cabeça com outros 'while's' que possam ser criados dentro desse código. O código ficou assim:
<meta charset="UTF-8">
<h1>Receitas do Yan</h1>
<script>
var ingredientes = [];
var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
var contador = 1;
contagem: while(contador <= quantidade) {
var ingrediente = prompt("Informe o ingrediente " + contador);
var repetido = false;
for(var posicao = 0; posicao < ingredientes.length; posicao++){
if( ingredientes[posicao] == ingrediente) {
repetido = true;
console.log("Você digitou um ingrediente repetido!");
continue contagem;
}
}
if(repetido == false){
ingredientes.push(ingrediente);
contador++;
}
}
console.log(ingredientes);
</script>
Gostaria de saber se está certo o uso do continue nessas condições.