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
- Ramificações: if-else, ternário, switch-case
- Padrões de ciclos: for, while, do-while
- Ciclo for baseado em intervalos com contentores
- Retornos antecipados, break, continue e goto