Array
(
)

Dúvida em Variáveis Ternária

Gustavo Persan
   - 04 abr 2014

Boa tarde Senhores !
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();

Joel Rodrigues
   - 07 abr 2014

Vamos lá, analisando cada instrução por partes. Lembrando dos valores iniciais:
#Código

int x = 10;
int y = 20;

#Código
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.

0
|
0

Gustavo Persan
   - 07 abr 2014

Olá Joel Rodrigues, Bom Dia !!!

Compreendi perfeitamente bem, matou a pau com essa explicação.
já podemos dar como sanado essa dúvida.

Muito obrigado.

0
|
0

Joel Rodrigues
   - 07 abr 2014

Show de bola então.
Precisando, estamos por aqui.
Abraço e bons códigos.

0
|
0