Dúvida em Variáveis Ternária
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();
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
Curtidas 0
Respostas
Joel Rodrigues
04/04/2014
Vamos lá, analisando cada instrução por partes. Lembrando dos valores iniciais:
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.
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.
GOSTEI 0
Gustavo Signorello
04/04/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.
Compreendi perfeitamente bem, matou a pau com essa explicação.
já podemos dar como sanado essa dúvida.
Muito obrigado.
GOSTEI 0
Joel Rodrigues
04/04/2014
Show de bola então.
Precisando, estamos por aqui.
Abraço e bons códigos.
Precisando, estamos por aqui.
Abraço e bons códigos.
GOSTEI 0