Dúvida em Variáveis Ternária
04/04/2014
0
Me deparei com o bloco de código abaixo e não consigo identificar como está ocorrendo o processo de alimentação das variáveis nesse sentido.
No Final, não consigo entender o porque X = 12 e Y = 20.
Alguém pode me ajudar ?
Grato
int x = 10;
int y = 20;
x += x == 20 ? x / y : y /x;
y -= y == 10 ? y / x : x / y;
Console.WriteLine(x);
Console.WriteLine(y);
Console.Read();
Gustavo Signorello
Posts
07/04/2014
Joel Rodrigues
int x = 10; int y = 20;
x += x == 20 ? x / y : y /x;
Podemos dividir a instrução em duas partes:
1) x += (alguma coisa)
2) x == 20 ? x / y : y /x;
Na primeira instrução, X vai ser somado com o resultado da segunda expressão, que é: SE X for igual a 20, retorne X/Y, senão, retorne Y/X.
Aplicando os valores, temos: X é igual a 20? Não, X é igual a 10, então o retorno da segunda expressão vai ser Y/X, que é20/10 = 2.
Dessa forma, a segunda operação vai ser reduzida a 2, e quando somarmos à primeira, X += 2. Como X = 10, X + 2 = 12.
Deu pra entender? Precisa explicar a segunda, ou prefere tentar resolver?
Abraço.
07/04/2014
Gustavo Signorello
Compreendi perfeitamente bem, matou a pau com essa explicação.
já podemos dar como sanado essa dúvida.
Muito obrigado.
07/04/2014
Joel Rodrigues
Precisando, estamos por aqui.
Abraço e bons códigos.
Clique aqui para fazer login e interagir na Comunidade :)