⊗jsPmLpFl 165 of 505 menu

Trabalhando com flags em JavaScript

Agora vamos aprender a trabalhar com flags. Uma flag é uma variável especial que só pode assumir dois valores: true e false. Com as flags, podemos resolver problemas que verificam a ausência de algo: por exemplo, podemos verificar se não há um elemento com um valor específico em um array. Vamos começar.

Vamos resolver o seguinte problema: dado um array com números, verifique se há nele um elemento com o valor 3 ou não. Se houver - exiba '+++', se não - exiba '---'.

Para começar, vamos tentar exibir '+++'. Para isso, vamos percorrer todos os elementos do nosso array e com um 'if' vamos perguntar - o elemento atual é igual ao valor 3? Se for igual - exibimos '+++':

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

Mas nossa solução não é muito boa: pois se no array houver não um único valor 3, mas vários, então '+++' será exibido várias vezes. Vamos corrigir nosso array (fazer dois elementos com o valor 3) e verificar isso:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // exibirá várias vezes } }

Vamos corrigir o problema: encerremos o ciclo com break, se o elemento já for encontrado:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // encerramos o ciclo } }

Agora vamos tentar fazer com que, se não houver nenhum elemento com o valor 3 no array, seja exibido '---'. Um equívoco comum é adicionar else ao nosso 'if' - neste caso, '---' será exibido para todos os elementos que não são 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // exibirá no elemento 3 } else { console.log('---'); // exibirá nos elementos 1, 2, 4, 5 } }

Então, a ideia de adicionar else é uma ideia ruim, que não funciona. Para resolver problemas desse tipo (tais problemas são encontrados com bastante frequência) são usadas as chamadas flags.

Como mencionado acima, uma flag é uma variável que pode assumir dois valores: true ou false.

Então, vamos criar uma variável flag com o seguinte significado: se for igual a true, então há um elemento 3 no array, e se for false, então não há tal elemento.

Inicialmente, vamos definir a variável flag como false - ou seja, vamos assumir que o elemento 3 não está no array:

let arr = [1, 2, 3, 4, 5]; let flag = false; // assumimos que o elemento 3 não está no array

Em seguida, vamos executar o ciclo com um 'if' da mesma forma que fizemos anteriormente. Se o ciclo detectar que há um elemento 3 no array, então definiremos a variável flag como true e sairemos do ciclo com break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // assumimos que o elemento 3 não está no array for (let elem of arr) { if (elem == 3) { flag = true; // elemento existe - redefinimos a variável flag break; // saímos do ciclo } }

A resposta para a questão, se há 3 no array ou não, só podemos dar após o ciclo. E essa resposta nós já temos: após o ciclo, a variável flag pode ter permanecido false ou pode ter mudado seu valor para true, se o ciclo detectou 3 no array:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // aqui a variável flag é igual a true ou false

Agora, após o ciclo, podemos fazer um 'if' que verificará a variável flag e exibirá na tela '+++' ou '---':

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

Dado o array:

let arr = ['a', 'b', 'c', 'd', 'e'];

Verifique se neste array há o elemento 'c'. Se houver - exiba '+++', e se não - exiba '---'.

Escreva um código que irá verificar se um número é primo ou não. Um número primo é divisível apenas por um e por si mesmo, e não é divisível por outros números.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar