C# Controle de fluxo Básico
Controle de fluxo
Controle de fluxo é o que permite ao programa tomar decisões e repetir tarefas. Em C#, as estruturas principais são if/else, switch, for, foreach e while. Cada uma tem um uso ideal: if para condições booleanas, switch para comparar um valor com vários casos, for para repetições com contador, foreach para percorrer coleções e while para repetir enquanto uma condição for verdadeira.
O switch tradicional usa case e break; já a switch expression (a partir do C# 8) retorna um valor de forma mais concisa e é muito usada com pattern matching. Ela elimina a necessidade de break e de variáveis auxiliares.
Laços de repetição evitam duplicação de código. for é ideal quando sabemos quantas vezes repetir; foreach percorre todos os elementos de um array ou lista; while repete enquanto a condição for verdadeira e é útil quando não sabemos o número exato de iterações.
Dominar essas estruturas é essencial para escrever qualquer programa não trivial. A escolha da estrutura certa deixa o código mais legível, seguro e expressivo.
Pontos-chave
if/elseexecuta blocos com base em condições booleanas.switchclássico compara um valor com várioscasee exigebreakpara evitar fall-through.foré usado quando se conhece o número de iterações;foreachpercorre coleções.whilerepete enquanto a condição for verdadeira, podendo ser infinito se mal usado.- Switch expressions retornam um valor e usam
=>para cada caso, sendo mais concisas.
using System;
class ControleFluxo
{
static void Main()
{
// if/else
int idade = 20;
if (idade >= 18)
Console.WriteLine("Maior de idade");
else
Console.WriteLine("Menor de idade");
// switch clássico
int dia = 3;
switch (dia)
{
case 1:
Console.WriteLine("Domingo");
break;
case 3:
Console.WriteLine("Terça");
break;
default:
Console.WriteLine("Outro dia");
break;
}
// switch expression
string nomeDia = dia switch
{
1 => "Domingo",
3 => "Terça",
_ => "Outro dia"
};
Console.WriteLine(nomeDia);
// for
for (int i = 0; i < 3; i++)
Console.WriteLine($"for: {i}");
// foreach
string[] frutas = { "Maçã", "Banana", "Uva" };
foreach (var fruta in frutas)
Console.WriteLine($"fruta: {fruta}");
// while
int contador = 0;
while (contador < 3)
{
Console.WriteLine($"while: {contador}");
contador++;
}
}
}