MSXInício
Capítulo 6Disponível

Decisões: IF / THEN / ELSE

Programas que sempre fazem a mesma coisa são chatos. Vamos ensinar o seu a decidir.

A forma mais simples

Quando você quer que um trecho de código rode só se uma condição for verdadeira, use IF:

IF condicao THEN ... comandos ... END IF

DIGITE E VEJA

Programa 6.1 — Você é maior de idade?

Mude o valor de idade e rode várias vezes.

USES SCREEN 1
SCREEN 1
CLS

DIM idade AS BYTE = 17

PRINT "IDADE = ", idade
IF idade >= 18 THEN
  PRINT "MAIOR DE IDADE."
END IF
PRINT "FIM."

Adicionando o caminho alternativo: ELSE

Para fazer uma coisa quando verdadeiro e outra coisa quando falso, use ELSE:

IF idade >= 18 THEN
   PRINT "MAIOR DE IDADE."
ELSE
   PRINT "MENOR DE IDADE."
END IF

DICA

Endentação importa (para você)

O compilador não liga se você endenta ou não. Mas você é humano, então endente sempre o conteúdo dentro de IF/THEN, FOR/NEXT, WHILE/WEND. Dois espaços bastam.

Várias condições em cadeia: ELSEIF

Quando há mais de duas alternativas, encadeie com ELSEIF:

DIGITE E VEJA

Programa 6.2 — Conceito da nota

Programa que classifica uma nota em A, B, C ou Reprovado.

USES SCREEN 1
SCREEN 1
CLS

DIM nota AS BYTE = 75

IF nota >= 90 THEN
  PRINT "CONCEITO A"
ELSEIF nota >= 80 THEN
  PRINT "CONCEITO B"
ELSEIF nota >= 70 THEN
  PRINT "CONCEITO C"
ELSE
  PRINT "REPROVADO"
END IF

ATENÇÃO

Coloque o caso mais específico primeiro

Se a primeira condição é mais ampla que as seguintes, as outras nunca rodam. Se você escrevesse IF nota >= 70 antes do IF nota >= 90, uma nota 95 cairia no primeiro IF e nunca chegaria a ser classificada como A.

IF aninhado dentro de outro IF

Você pode colocar um IF dentro de outro:

IF tem_chave THEN
   IF porta_trancada THEN
      PRINT "DESTRANCANDO..."
   ELSE
      PRINT "PORTA JA ABERTA."
   END IF
ELSE
   PRINT "VOCE NAO TEM A CHAVE."
END IF

DICA

Combine condições em vez de aninhar

Em muitos casos, aninhar dois IFs equivale a usar AND: IF tem_chave AND porta_trancada THEN PRINT "DESTRANCANDO" fica mais legível e roda mais rápido.

Exercícios

  • 6.1 — Programa que lê um número e mostra PAR se for par, IMPAR se for ímpar (Dica: n MOD 2).
  • 6.2 — Dado um valor de idade, mostre: BEBE (0-2), CRIANCA (3-12), JOVEM (13-17), ADULTO (18-64), IDOSO (65+).
  • 6.3 — Reescreva o exercício 6.2 sem usar ELSEIF, só com IFs separados. Compare a legibilidade.

Resumo do capítulo

  • IF condicao THEN ... END IF executa só se verdadeiro.
  • ELSE dá um caminho alternativo quando a condição é falsa.
  • ELSEIF encadeia múltiplas condições em ordem.
  • Endente sempre — seu cérebro vai agradecer.
  • Prefira AND a aninhar IFs sempre que possível.
Comunidade

Discussão · Decisões: IF / THEN / ELSE

Curta, marque como lido e comente o que achou deste capítulo.

0 comentários
Entre para participar
Crie uma conta ou faça login para curtir, marcar como lido e comentar.

Carregando comentários…