Galera sou iniciante em programação estou tentando resolver um exercicio da net
que tenho que percorrer este array mais tem que ser com o while
let array [2, 8, 9, 5, 4, 6, 0, 7, 1, 3];
Galera sou iniciante em programação estou tentando resolver um exercicio da net
que tenho que percorrer este array mais tem que ser com o while
let array [2, 8, 9, 5, 4, 6, 0, 7, 1, 3];
Bom analisando o seguinte código:
for (let i = 0; i < onibus.length; i++)
// logica do loop
Podemos ver que o for tem 3 estruturas principais:
inicialização: let i = 0
Condição: i < onibus.length
Atualização: i++
Para resolver essa questão usando while basta “implementar a logica do for”:
/** inicialização */
let i = 0
while (i < onibus.length /** condição */) {
/** logica do loop */
/** atualização */
i++
}
Esse trecho de código percorre todos os valores do array onibus. Agora so precisamos encontrar a menor idade(menor numero do array)
let menorIdade = onibus[0]
let valorAtualDoArray = 0
/** inicialização */
/** já que supomos que o menor valor esta na posição
0 do array, não inicia da posição 0 e sim da posição 1 */
let i = 1
while (i < onibus.length /** condição */) {
/** logica do loop */
valorAtualDoArray = onibus[i]
if (valorAtualDoArray < menorIdade)
menorIdade = valorAtualDoArray
/** atualização */
i++
}
console.log(menorIdade)
explicação da logica
let menorIdade = onibus[0]
essa variável serve para guardar o valor da menor idade, aqui vamos supor que a menor idade esta no primeiro valor do array. Então precisamos apenas verificar o restante do array para ter certeza que esse é o menor valor.
let valorAtualDoArray = 0
serve para guardar o valor atual que o laço está percorrendo.
if (valorAtualDoArray < menorIdade) {
menorIdade = valorAtualDoArray
}
o que esse codigo faz é verificar se cada posição do array é menor do que menorIdade
console.log(menorIdade)
por fim apresentamos esse valor no console.
simulação da execução do algoritmo
onibus = [3, 10, 2]
1° repetição
menorIdade = 3
valorAtualDoArray = 10
if (valorAtualDoArray < menorIdade) /** 10 < 3 */ F
2° repetição*
menorIdade 3
valorAtualDoArray = 2
if (valorAtualDoArray < menorIdade) /** 2 < 3 */ V
Então a menorIdade vai ser 2
Fim do array
Então o algoritmo mostra o valor 2 no console e encerra a execução.
Espero que tenha entendido! E bons estudos
obrigado pela ajuda me ajudou demais, só que tem um problema eu precisava mostrar o resultado assim o mais novo tem 0 anos e está na cadeira 6.
no caso o valoratualdoarray eu dou um console.log e me apresenta que ele está na 3
A ok! Basta ceiar mais uma variável para guardar o lugar (índice do array da menor idade), então na condição você coloca:
if (valorAtualDoArray < menorIdade) {
menorIdade = valorAtualDoArray
numeroCadeira = i /** índice da menor idade */
}
Assim resolve o problema
vou testar
const array = [5, 3, 4,7, 10]
let menorIdade = array[0]
let lugarMenorIdade = 0
let valorAtualDoArray = 0
let i = 1
while (i < array.length ) {
valorAtualDoArray = array[i]
if (valorAtualDoArray < menorIdade ) {
menorIdade = valorAtualDoArray
lugarMenorIdade = i
}
i++
}
console.log("Menor Idade: ", menorIdade)
console.log("Numero Cadeira: ", lugarMenorIdade)
Código completo, fiz o teste e funcionou
funcionou perfeitamente