leí desde el tutorial oficial de Java que prefijo y de sufijo ++ - tienen distintas precedencias:precedencia de operadores ++ y - en Java
postfix: expr ++ expr--
unario : ++ expr --expr + expr -expr ~!
Según el tutorial, no debe esta impresión
d = 1; System.out.println(d++ + ++d);
a cabo 6 (d++
hace d 2, ++d
hace que sea 3) en lugar de 4?
sé la explicación de ++d
siendo evaluado de antemano, pero si d++
tiene mayor precedencia a continuación ++d
, ¿por qué no d++
siendo evaluados por primera vez? Y lo que es más, ¿en qué caso debería d++
mostrar que tiene mayor prioridad?
EDIT:
He intentado lo siguiente:
d = 1; System.out.println(++d * d++);
Devuelve 4. Parece que debería ser de 2 * 2, en lugar de 1 * 3.
Preguntas como esta me frustran inmensamente. Nadie * alguna vez * escribe código como 'System.out.println (d ++ + ++ d);' entonces ¿por qué te importa? Es una súper-trivialidad. – Qwerky
@Qwerky Aunque nadie podría escribir un código como este, quizás sea para la escuela. A los docentes/profesores les encanta preguntar este tipo de preguntas "nunca se escribirá así, pero vamos a probarlo de todas formas para ver si usted entiende cómo funciona". –
@Qwerky Perdón por frustrarlo :) En cuanto a la razón por la que pregunté, tal vez es porque la curiosidad. Por suerte, ya que no soy un gato. –