Mobile App Development · Dart/Flutter
Como usar if, else if e else para tomada de decisão em Dart, combinando operadores relacionais e lógicos.
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.
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.
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.
// 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');
}
}
Menor de idade Bom desempenho
idade e informe se é maior ou menor de idade.nota e classifique em: excelente, bom, recuperação, reprovado.usuarioAtivo e temAssinatura e libere acesso ao conteúdo premium somente quando ambas forem verdadeiras.if aninhados usando guard clauses.