Dando Inteligência
ao seu Código
1. Tomada de Decisão: If / Else
O if é a porta de entrada da lógica. Ele avalia uma expressão booleana: se for true, ele entra; se for false, ele pula para o else.
O que o aluno aprende:
O programa não lê todas as linhas. Ele escolhe um bloco e descarta o outro. Isso economiza processamento e define o comportamento do software.
2. Seleção Múltipla: Switch
Quando você tem uma única variável e quer comparar com muitos valores possíveis, o switch é muito mais elegante e rápido que vários if/else.
int opcao = 2;
switch (opcao)
{
case 1:
Console.WriteLine("Abrindo Perfil...");
break;
case 2:
Console.WriteLine("Abrindo Configurações...");
break;
default:
Console.WriteLine("Opção Inválida.");
break;
}
Por que o 'break'? No C#, o break diz ao programa: "Pare! Já achei o que queria, não precisa testar os outros casos". Sem ele, o código poderia continuar executando os próximos casos indevidamente.
3. Laços Contados: For & Foreach
O for é usado quando você sabe exatamente quantas vezes quer repetir algo. Já o foreach é o mestre das listas.
1. Início (i=0) | 2. Condição (i < 5) | 3. Incremento (i++)
O Laço 'For' Clássico
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Contagem: " + i);
}
O Elegante 'Foreach'
string[] nomes = { "Ana", "Bia" };
foreach (var n in nomes)
{
Console.WriteLine("Olá, " + n);
}
Perfeito para percorrer coleções de dados sem se preocupar com índices.
4. Laços Condicionais: While
O while repete enquanto uma condição for verdadeira. Ele é ideal para situações onde o fim depende de uma ação externa (ex: entrada do usuário).
While (Teste no Início)
while (energia > 0)
{
Trabalhar();
energia--;
}
Do-While (Teste no Fim)
do
{
TentarNovamente();
} while (falhou);
Garante que o código rode ao menos uma vez.
5. Lab Final: Sistema de Login e Repetição
Vamos juntar tudo! Simularemos um sistema que tenta logar um usuário 3 vezes antes de bloquear.
Program.cs - Desafio Completo
int tentativas = 3;
bool logado = false;
while (tentativas > 0 && !logado)
{
Console.WriteLine("Tentativa " + (4 - tentativas));
if (senhaCorreta) {
logado = true;
Console.WriteLine("Sucesso!");
} else {
tentativas--;
Console.WriteLine("Erro. Restam " + tentativas);
}
}
if (!logado) Console.WriteLine("Bloqueado.");
RESULTADO ESPERADO
> dotnet run
Tentativa 1
Erro. Restam 2
Tentativa 2
Erro. Restam 1
Tentativa 3
Erro. Restam 0
Bloqueado.