Como el código
Int x = 4; int y = 9; x = (y% x! = 0)? Y / x: y;
es posible que no se compile (según el idioma), porque Y e y son variables diferentes si el idioma distingue entre mayúsculas y minúsculas y aún no se ha declarado. (Int e int también son de diferentes tipos).
Deje que se resuelva este problema de compilación, lo que produce
- ¿Podemos escribir la ecuación de gas ideal como PV = nTR?
- ¿Cuáles son todas las raíces complejas de [matemáticas] x ^ 3 + 27 = 0 [/ matemáticas]?
- Cómo resolver [matemáticas] 10 ^ x = 0 [/ matemáticas]
- ¿Podemos trazar un polinomio en un gráfico?
- ¿Por qué son útiles las expresiones algebraicas? ¿Cuáles son algunos ejemplos?
int x = 4; int y = 9; x = (y% x! = 0)? y / x: y;
Después de las dos primeras líneas, x es igual a 4 e y es igual a 9. Entonces, lo primero que se evaluará es la expresión entre paréntesis, donde el operador% tiene mayor prioridad que el operador! =. (Una posible razón para esto es permitir que cosas como a + b == c * d se analicen como podría esperarse: calcule ambos lados y luego compare).
Entonces, y% x es igual a 9% 4, que es igual a 1, y 1! = 0 es verdadero (1 no es igual a 0). Entonces, la expresión se convierte en:
x = verdadero? y / x: y;
El operador / tiene mayor precedencia que el operador?: Y el operador =, por lo que y / x se evalúa como 9/4, que es igual a 2, ya que el signo / es una división entera, que deja:
x = verdadero? 2: y;
o (ya que y es igual a 9)
x = verdadero? 2: 9;
El operador?: Tiene mayor precedencia que el operador = (asignación), y verdadero? 2: 9 evalúa a 2 (y falso? 2: 9 habría evaluado a 9).
Entonces 2 se asigna a x.