?:
?:
é uma forma abreviada de expressar um tipo
muito usual de instruções alternativas.
condição ? expressão_caso_verdadeira : expressão_caso_falsa
i.e.,
int x;
// ...
int z = 0 < x ? x : -x;
z
é inicializada com o valor absoluto (módulo)
de x
.
Nota: Se a condição for verdadeira a segunda expressão não chega a ser calculada e vice-versa.
switch
switch(expressão_de_controlo) {
case valor_1:
//
... instruções.break;
case valor_2:
//
... instruções.break;
...
default:
//
... instruções.}
Importante: A instrução
int dígito;
cin >> dígito;
switch(dígito) {
case 0:
cout << "zero";
break;
case 1:
cout << "um";
break;
case 2:
cout << "dois";
break;
case 3:
cout << "três";
break;
case 4:
cout << "quatro";
break;
case 5:
cout << "cinco";
break;
case 6:
cout << "seis";
break;
case 7:
cout << "sete";
break;
case 8:
cout << "oito";
break;
case 9:
cout << "nove";
break;
}
switch
não permite a especificação de gamas de valores nem
de desigualdades. Construções como
case
1..10:
ou case < 10:
são
inválidas. Assim, é possível usar como expressão
de controlo do switch
apenas expressões de um dos tipos
inteiros ou de um tipo enumerado (a ver em aulas posteriores), devendo
os valores colocados nos case
respectivos ser do mesmo tipo.
Importante: Cada caso corresponde
a um ponto de entrada no bloco de instruções do switch
.
Se se eliminarem os break
e o valor introduzido pelo utilizador
for 7, o exemplo escreve no ecrã
Coloque sempre as instruções
seteoitonove
break
!
São elas que terminam abruptamente a execução do bloco
de instruções do switch
, levando ao resultado pretendido,
que é que as instruções em cada caso sejam alternativas.
Pode usar um caso de nome default:
para capturar todos os casos
não previstos pelos casos "normais" (case valor:
).