Guia de Engenharia de Prompt: Economize Tokens com Comandos Precisos

Imagem
Foto: Google DeepMind / Pexels Resumo rápido Entenda o que são tokens e por que cada fragmento de texto impacta o custo e o processamento. Aprenda o método dos 4 pilares para criar instruções técnicas diretas e sem redundâncias. Descubra como o uso de delimitadores substitui frases explicativas longas e economiza recursos. Veja exemplos práticos de como reduzir o tamanho de um prompt em mais de 50% mantendo a precisão. Se você já sentiu que está gastando "munição" à toa ao interagir com uma IA, este guia é para você. No nosso dia a dia de desenvolvimento, tratar o prompt como uma conversa de bar é um erro comum que consome recursos preciosos. Cada palavra que enviamos para o modelo é processada e cobrada, e entender essa mecânica é a diferença entre um sobrevivente eficiente e alguém que fica sem suprimentos no meio da missão. Neste artigo, vamos mergulhar na Engenharia de Prompt com foco total em eficiência. Vamos aprender a cortar o que é irrelevante, estruturar o que é v...

Switch em C#: quando usar no lugar de vários if (com exemplos)

Mascote do Devs na Prática apresentando o título Switch em C#

Resumo rápido

  • O switch escolhe um caminho comparando um valor com uma lista de opções (case).
  • Cada case termina com break.
  • O default roda quando nenhuma opção bate, como o else.
  • Vários case podem dividir o mesmo bloco.
  • A expressão switch (=>) devolve um valor direto, em menos linhas.

Você chega ao mercador e ele mostra o menu: 1 para comprar, 2 para vender, 3 para melhorar a arma, 4 para sair. Dá para escrever isso com uma escada de if/else if, mas fica comprido. Para esse tipo de decisão, o C# tem o switch.

Se ainda não viu o if, comece pelo post anterior da série: If, else e else if em C#.

A estrutura do switch

Mascote segurando a placa MENU ao lado de um switch com as opções do mercador

O switch recebe um valor e compara com cada case. Quando encontra o igual, executa aquele bloco até o break.

C#

Console.WriteLine("1 - Comprar | 2 - Vender | 3 - Melhorar arma | 4 - Sair");
int opcao = 2;

switch (opcao)
{
    case 1:
        Console.WriteLine("O que você vai levar?");
        break;
    case 2:
        Console.WriteLine("Deixa eu ver seus tesouros.");
        break;
    case 3:
        Console.WriteLine("Vamos deixar essa arma mais forte.");
        break;
    case 4:
        Console.WriteLine("Volte sempre!");
        break;
    default:
        Console.WriteLine("Opção inválida.");
        break;
}

Saída esperada

1 - Comprar | 2 - Vender | 3 - Melhorar arma | 4 - Sair
Deixa eu ver seus tesouros.

Para ler a opção digitada pelo jogador, troque a linha int opcao = 2; por int opcao = int.Parse(Console.ReadLine());.

Para que servem o break e o default

  • break encerra o switch. Em C# ele é obrigatório no fim de cada case que tem código; sem ele o programa nem compila.
  • default é o "nenhuma das anteriores". Use sempre que o valor puder vir de fora (o que o usuário digitou, por exemplo).

Vários case no mesmo bloco

Quando opções diferentes devem fazer a mesma coisa, empilhe os case sem código entre eles:

C#

string erva = "verde";

switch (erva)
{
    case "verde":
    case "vermelha":
        Console.WriteLine("Pode combinar.");
        break;
    case "amarela":
        Console.WriteLine("Aumenta a vida máxima.");
        break;
    default:
        Console.WriteLine("Erva desconhecida.");
        break;
}

Saída esperada

Pode combinar.

⚠️ Com string, o switch diferencia maiúsculas: "Verde" não bate com "verde". Se o texto vier do usuário, use switch (erva.ToLower()).

Expressão switch: o jeito curto

Quando cada opção só serve para escolher um valor, o C# moderno tem a expressão switch, com =>. O _ faz o papel do default.

C#

string arma = "escopeta";

int dano = arma switch
{
    "pistola" => 10,
    "escopeta" => 40,
    "rifle" => 60,
    _ => 1
};

Console.WriteLine($"Dano da {arma}: {dano}");

Saída esperada

Dano da escopeta: 40

Switch ou if: qual usar?

Mascote com uma ideia comparando quando usar switch e quando usar if
SituaçãoMelhor escolha
Um valor com várias opções fixas (menu, tipo de item, dia da semana)switch
Faixas de valores (vida >= 70, vida >= 30...)if / else if
Condições com variáveis diferentes (temChave && vida > 0)if
Escolher um valor a partir de outro (arma → dano)expressão switch

DESAFIO

Tente resolver antes de abrir a resposta. Sobreviveu? Vá para o próximo.

  1. O que acontece se você apagar o break do case 1 no menu do mercador?

    Ver resposta

    O programa não compila. O C# acusa que o controle não pode "cair" de um case para o próximo.

  2. Escreva uma expressão switch que transforme a dificuldade ("facil", "normal", "profissional") na quantidade de vida inicial: 150, 100 e 50. Qualquer outra vira 100.

    Ver resposta
    int vida = dificuldade switch
    {
        "facil" => 150,
        "normal" => 100,
        "profissional" => 50,
        _ => 100
    };
  3. Para decidir a cor da barra de vida (verde, amarela, vermelha) por faixas, você usaria switch clássico ou if/else if?

    Ver resposta

    if/else if, porque são faixas de valores, não opções fixas.

Conclusão

O switch deixa menus e escolhas fixas mais fáceis de ler e de manter. Agora que o programa já sabe decidir, falta ele saber repetir: enquanto houver inimigos, continue lutando. Isso é com os laços de repetição.

📖 Continue a série: While e For em C#.

Comentários

Postagens mais visitadas deste blog

Classes e objetos em C#: criando o seu personagem do jeito certo

Console.WriteLine e Console.ReadLine em C#: conversando com o jogador

Modificadores de acesso em C#: public, private, protected e internal