Mobile App Development · Dart/Flutter

08 · IF

Como usar if, else if e else para tomada de decisão em Dart, combinando operadores relacionais e lógicos.

1Objetivo da aula

Nesta aula você vai usar if, else if e else para que o programa escolha caminhos diferentes com base em regras — como validar idade, classificar uma nota ou liberar um acesso. Você também vai combinar operadores relacionais e lógicos dentro das condições.

2O que vamos aprender

if / else

Decisão binária: executa um bloco se a condição for verdadeira, outro se for falsa.

else if

Encadeia mais de uma condição, testando-as em ordem até encontrar a primeira verdadeira.

> < >= <= == !=

Operadores relacionais: comparam dois valores e resultam em um bool.

&& || !

Operadores lógicos: combinam ou negam condições booleanas (E, OU, NÃO).

if aninhado

Um if dentro de outro, usado quando uma decisão depende do resultado de uma decisão anterior.

Guard clause

Validar e sair cedo com return em vez de aninhar vários blocos if/else.

condicao ? a : b

Operador ternário: forma compacta de um if/else que retorna um valor. Use apenas em decisões curtas.

= vs ==

Erro comum: = atribui um valor, == compara dois valores. Confundir os dois é uma fonte clássica de bugs.

3Exemplo comentado

// Exemplo: uso de if/else e if/else if/else para tomada de decisão.
// Demonstra decisão binária (maior/menor de idade) e decisão em cadeia (classificação de nota).
void main() {
  final idade = 17;

  // Decisão binária: apenas dois caminhos possíveis.
  if (idade >= 18) {
    print('Maior de idade');
  } else {
    print('Menor de idade');
  }

  final nota = 8.2;

  // Decisão em cadeia: cada 'else if' testa uma nova condição até encontrar uma verdadeira.
  if (nota >= 9) {
    print('Excelente');
  } else if (nota >= 7) {
    print('Bom desempenho');
  } else if (nota >= 6) {
    print('Recuperação');
  } else {
    print('Reprovado');
  }
}

4Saída esperada

Menor de idade
Bom desempenho

5Do conteúdo para a prática

6Prática sugerida