0Pricing
C++ Academy · Aula

Ramificações: if-else, ternário, switch-case

Escolha entre cadeias if-else, expressões ternárias e instruções switch para criar ramificações claras

Ramificações: if-else, ternário, switch-case é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

A instrução if

A condicional básica. O corpo é executado quando a condição é verdadeira. As chaves são opcionais para uma única instrução, mas sempre recomendadas.

int score = 85;
if (score >= 60) {
    std::cout << "Pass\n";
}

Cadeias de if-else

Teste alternativas com else if e um else final. O primeiro ramo verdadeiro é executado.

if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";

Condições booleanas

Qualquer expressão conversível para bool funciona. Ponteiros são avaliados como falsos quando nulos, e inteiros, quando iguais a zero. Seja explícito para manter a clareza.

Inicialização no if (C++17)

O C++17 permite declarar uma variável dentro do if. O escopo da variável é o corpo do if-else.

if (auto it = map.find(key); it != map.end()) {
    std::cout << it->second;
}

O operador ternário

condition ? a : b retorna um de dois valores. É ótimo para escolhas simples, mas péssimo para lógica aninhada.

int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";

Ternários aninhados: evite

Ternários aninhados são difíceis de ler. Em vez disso, use if-else ou extraia a lógica para uma função auxiliar.

// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";

// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";

A instrução switch

Compare um valor com várias constantes. Cada ramo precisa de break para evitar a continuação automática no próximo case.

switch (day) {
    case 1: std::cout << "Mon"; break;
    case 2: std::cout << "Tue"; break;
    default: std::cout << "?";  break;
}

Continuação intencional

Agrupe vários cases que compartilham o mesmo código. O C++17 adicionou [[fallthrough]] como marcador para o compilador.

switch (c) {
    case 'a': case 'e': case 'i': case 'o': case 'u':
        std::cout << "vowel"; break;
    default:
        std::cout << "consonant";
}

Restrições de switch

switch funciona apenas com tipos inteiros e enumerados. Para strings, use if-else ou uma tabela de dispersão.

Inicializador em switch (C++17)

Assim como no if, você pode declarar uma variável dentro do cabeçalho do switch.

switch (auto value = compute(); value) {
    case 0: ...
    default: ...
}

Padrão: tabela de consulta

Para ramos indexados por strings, uma std::unordered_map pode ser mais clara que uma cadeia de if-else.

std::unordered_map<std::string, std::function<void()>> commands = {
    {"start", []{ start(); }},
    {"stop",  []{ stop();  }}
};
if (auto it = commands.find(cmd); it != commands.end())
    it->second();

Verificação rápida

O que acontece se um case em um switch não tiver um break e o próximo case não estiver vazio?

Recapitulação

Use if-else para ramificações gerais, o operador ternário para escolhas curtas entre valores e switch ao comparar um valor com várias constantes inteiras. As instruções de inicialização do C++17 organizam melhor o escopo.

Perguntas Frequentes

A aula “Ramificações: if-else, ternário, switch-case” é grátis?

Sim — o texto completo de “Ramificações: if-else, ternário, switch-case” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Ramificações: if-else, ternário, switch-case”?

Escolha entre cadeias if-else, expressões ternárias e instruções switch para criar ramificações claras Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Ramificações: if-else, ternário, switch-case”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Ramificações: if-else, ternário, switch-case
  2. Padrões de ciclos: for, while, do-while
  3. Ciclo for baseado em intervalos com contentores
  4. Retornos antecipados, break, continue e goto
← Voltar para C++ Academy