Dúvida em Variáveis Ternária

04/04/2014

0

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();
Gustavo Signorello

Gustavo Signorello

Responder

Posts

07/04/2014

Joel Rodrigues

Vamos lá, analisando cada instrução por partes. Lembrando dos valores iniciais:
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.
Responder

07/04/2014

Gustavo Signorello

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.
Responder

07/04/2014

Joel Rodrigues

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar