Embora ela não seja um tipo diferente de sentença, a seguinte construção é bastante comum para programar decisões entre diversas alternativas:
if ()
else if ()
else if ()
else if (
)
else
As expressões lógicas são avaliadas em ordem, começando com a
. Se uma das expressões for verdadeira, a sentença
associada será executada. Se nenhuma for verdadeira, então a sentença,
, do último else será executada como opção default. Se a opção default não for necessária, então a parte
else
pode ser removida.
O seguinte exemplo mostra um else-if de três opções. O programa lê dois números e diz se eles são iguais ou se o primeiro número é menor ou maior que o segundo.
#include <iostream> using namespace std; int main( ){ int num1, num2; // obtem 2 numeros do usuario cout << "Entre um numero: "; cin >> num1; cout << "Entre com um outro numero: "; cin >> num2; // mostra a mensagem de comparacao if (num1 == num2) cout << "Os numeros sao iguais\n"; else if (num1 < num2) cout << "O primeiro numero e menor\n"; else cout << "O primeiro numero e maior\n"; }
No programa acima, se (num1 == num2) for verdadeiro, então os números são iguais. Senão, é verificado se (num1 < num2). Se esta condição for verdadeira, então o primeiro número é menor. Se isso não for verdadeiro, então a única opção restante é que o primeiro número é maior.
Este programa lê um número, um operador e um segundo número e realiza a operação correspondente entre os operandos dados.
#include <iostream> using namespace std; int main( ){ float num1, num2; char op; // obtem uma expressao do usuario cout << "Entre com numero operador numero\n"; cin >> num1 >> op >> num2; // mostra o resultado da operacao if (op == '+') cout << " = " << setprecision(2) << num1 + num2; else if (op == '-') cout << " = " << setprecision(2) << num1 - num2; else if (op == '/') cout << " = " << setprecision(2) << num1 / num2; else if (op == '*') cout << " = " << setprecision(2) << num1 * num2; else cout << " Operador invalido."; cout << endl; }
Exemplos da execução deste programa:
Entre com numero operador numero: 5 * 3.5 = 17.50 Entre com numero operador numero: 10 + 0 = 10.00 Entre com numero operador numero: 10 x 5.0 Operador invalido.