7  Estruturas de controle

   Assim como para linguagens de programação diversas, estruturas de controle em JavaScript direcionam o fluxo de execução do código (ordem, condições). Os fluxos de controle mais comuns são os condicionais e de repetição:


// Condicionais

if      // executa um bloco de código se uma condição for verdadeira
else    // executa um bloco de código se a condição do if for falsa
else if // verifica múltiplas condições em sequência
switch  // executa diferentes blocos de código com base no valor de uma expressão

// Repetição

for       // laço com contador: inicialização; condição; atualização — ideal quando o nº de iterações é conhecido
while     // laço por condição: repete enquanto a condição for verdadeira (condição testada ANTES de cada volta)
do while  // laço pós-teste: executa AO MENOS uma vez e repete enquanto a condição for verdadeira (testada DEPOIS)


7.1 Estruturas condicionais

  Para as estruturas condicionais, seguem alguns exemplos.

7.1.1 IF

  A sintaxe de declaração dessa função é:
if (condição) execute isto quando verdadeiro


  Seguem exemplos pra testes logo abaixo do 1o.

// if
let idade = 18;
if (idade >= 18) {
print("Você é maior de idade.");
}
// saída: Você é maior de idade.



7.1.2 ELSE

  A sintaxe de declaração dessa função é:
if (condição) { execute isso quando verdadeiro
}
  else {quando falso, execute essa alternativa
}


// else

let idade = 15;
if (idade >= 18) {
  print("Você é maior de idade.");
} else {
  print("Você é menor de idade.");
}

// saída: Você é menor de idade.


7.1.3 ELSE IF

  A sintaxe de declaração dessa função permite ramificação múltipla (branching):
se (condição) {
  execute isso quando verdadeiro
}
else if (condição) {
  execute isso quando veradeiro
}
else if (condição) {
  execute isso quando verdadeiro
}
else {
  execute isso quando falso
}



// else if
let nota = 75;
if (nota >= 90) {
  print("A");
} else if (nota >= 80) {
  print("B");
} else if (nota >= 70) {
  print("C");
} else {
  print("D");
}

// saída: C


7.1.4 SWITCH

  A sintaxe de declaração dessa função também permite branching múltiplo.
switch (expressão) {
   case 1: execute isso quando se adequar; break
   case 2: execute isso quando se adequar; break
   case 3: execute isso quando se adequar; break
   default: execute isso quando não houver adequação
   }



// switch

let dia = "segunda";
switch (dia) {
  case "segunda":
    print("Dia de trabalho.");
    break;
  case "sábado":
    print("Dia de descanso.");
    break;
  default:
    print("Dia comum.");
}

// saída: Dia de trabalho.


7.2 Estruturas de repetição

  Seguem alguns exemplos para as estruturas de repetição em JavaScript.

7.3 FOR

  A sintaxe de declaração dessa função é:
for (inicializador; condição; modificador) {
  execute isso
}


// for

for (let i = 0; i < 5; i++) {
  print(i);
}

// saída:
// 0
// 1
// 2
// 3
// 4



7.3.0.1 FOR…IN

// for...in

let pessoa = { nome: "João", idade: 30 };
for (let propriedade in pessoa) {
  print(propriedade + ": " + pessoa[propriedade]);
}

// saída:
// nome: João
// idade: 30


7.3.0.2 FOR…OF

// for...of

let numeros = [1, 2, 3];
for (let numero of numeros) {
  print(numero);
}

// saída:
// 1
// 2
// 3


7.3.1 WHILE

  A sintaxe de declaração dessa função é:
while (condição) {
  execute isso
  modificador
}


// while

let contador = 0;
while (contador < 3) {
  print(contador);
  contador++;
}

// saída:
// 0
// 1
// 2


7.3.2 DO…WHILE

  A sintaxe de declaração dessa função é:
do {
  execute isso
  modificador
}
while (condição)


// do...while

let i = 0;
do {
    print(i);
    i++;
} while (i < 5);

// saída:
// 0
// 1
// 2
// 3
// 4