[quote=“feliperod”]Olá de novo pessoal…
Continuando minhas dúvidas de usualidade de alguns operadores…
Alguém me diz onde vou usar um operador como este:
?:
por exemplo essa expressão eu entendo.
Expressão usando o Operador ternário ?:
[code]
//a, b e c são do tipo int, e x é do tipo boolean.
a = x ? b : c;[/code]
a mesma operação escrita por um ser humano, ou seja de forma legível:
if (x){
a=b;
} else {
a = c
}
Se alguém puder reescrever essa expressão usando if/else eu agradeço. A expressão é esta:
a = b ? c ? d : e ? f : g : h ? i : j ? k : l;
té +[/quote]
Depois que vc se acostuma ele fica claro de se entender, uma ajuda é colocar parentesis:
pelo seu primeiro exemplo:
a = (x ? b : c);
Bem simples, preticamente não mudou nada, mas veja para o que vc achou complicado:
a = (b ? (c ? d : (e ? f : g)) : (h ? i : (j ? k : l)));
Agora o que realmente significa a composição do operador?
tomando o exemplo mais simples que é a base do mesmo:
x ? b : c
Isso significa que:
[quote]Caso a expressão “x” seja verdadeira, então avalie a expressão “b”
Caso a expressão “x” seja falsa, então avalie a expressão “c”[/quote]
Vamos organizar melhor o código do Felipe apenas pra entendimento (Desculpe Felipe só acrescentei mas chaves - desnecessárias para o código mas facilitadores do entendimento):
if (b) {
if (c) {
a = d;
} else if (e) {
a = f;
} else {
a = g;
}
} else {
if (h) {
a = i;
} else if (j) {
a = k;
} else {
a = l;
}
}