Mobile App Development · Dart/Flutter
Dois desafios que combinam if/else com outras ferramentas de decisão: ternário e switch em um, faixas etárias encadeadas no outro.
Desafio 1
Classifica um pedido por faixa de valor com if / else if / else, usa o operador ternário para indicar se há cupom aplicado e usa switch para mapear o status do pedido a uma mensagem — três estruturas de decisão diferentes em um único programa.
// Desafio: classificar pedidos usando if/else, operador ternário e switch.
// Combina múltiplas estruturas de controle de fluxo em um contexto real.
void main() {
String cliente = 'Mariana';
double valorPedido = 165.90;
// bool que indica se um cupom foi aplicado ao pedido.
bool temCupom = true;
String status = 'preparando';
// Cabeçalho do classificador.
print('=== Classificador de Pedidos ===');
print('Cliente: $cliente');
print('Valor: R\$ ${valorPedido.toStringAsFixed(2)}');
// Classifica o pedido por faixa de valor usando if/else if/else.
if (valorPedido < 50) {
print('Categoria: pedido pequeno');
} else if (valorPedido < 150) {
print('Categoria: pedido medio');
} else {
// Pedidos acima de R$ 150 são considerados grandes.
print('Categoria: pedido grande');
}
// Operador ternário: condição ? valor_se_verdadeiro : valor_se_falso.
// Forma compacta de um if/else que retorna um valor.
print(temCupom ? 'Cupom aplicado' : 'Sem cupom aplicado');
// Switch para mapear o status do pedido a uma mensagem descritiva.
switch (status) {
case 'novo':
print('Status: pedido recebido');
break;
case 'preparando':
print('Status: pedido em preparo');
break;
case 'enviado':
print('Status: pedido saiu para entrega');
break;
case 'entregue':
print('Status: pedido entregue');
break;
default:
// Captura qualquer status não mapeado nos cases anteriores.
print('Status: desconhecido');
}
}
Saída esperada
=== Classificador de Pedidos === Cliente: Mariana Valor: R$ 165.90 Categoria: pedido grande Cupom aplicado Status: pedido em preparo
Como executar
dart run 08-IF/03_Desafios/codigo_fonte/desafio_01_classificador_pedidos.dart
Desafio 2
Classifica uma idade em quatro faixas etárias (criança, adolescente, adulto, idoso) usando uma cadeia de if / else if / else com limites superiores sucessivos.
void main() {
// Desafio: classificar idade com if/else.
final idade = 17;
if (idade < 12) {
print('Classificação: Criança');
} else if (idade < 18) {
print('Classificação: Adolescente');
} else if (idade < 60) {
print('Classificação: Adulto');
} else {
print('Classificação: Idoso');
}
}
Saída esperada
Classificação: Adolescente
Como executar
dart run 08-IF/03_Desafios/codigo_fonte/desafio_if.dart