public class qusetion {
public static void main(String[] args) {
int i = 1;
i = i++;
int j = i++;
int k = i + ++i * i++;
System.out.println("i:"+i);
System.out.println("j:"+j);
System.out.println("k:"+k);
}
}
Me gustaría preguntar, ¿cuáles son los resultados de i, j y k?
Piénselo, la respuesta es:
i:4
j:1
k:11
Por qué, a continuación, analizaremos gradualmente este proceso:
La primera oración es muy simple: establezca la constante i = 1;
Segunda oración: i = i ++;
Este proceso requiere que lo comprendamos. A partir de "=", el número de asignación es el más lento :
- El primer paso es poner el valor de i en la pila, luego i-> 1
- El segundo paso: el valor de i se incrementa en 1, i-> 2
- El tercer paso: asignar el valor 1 en la pila a i, i-> 1
Tercera oración: j = i ++; igual que la segunda oración
- El primer paso es poner el valor de i en la pila, luego i-> 1
- El segundo paso: el valor de i se incrementa en 1, i-> 2
- El tercer paso: asigne el valor 1 en la pila a [j], j-> 1
- En este punto se puede determinar que el resultado final j es 1
Cuarta oración: k = i + ++ i * i ++;
- El primer paso es poner el valor de i en la pila, luego i-> 2
- El segundo paso: ++ i: después de que el valor de i se acumule en 1, colóquelo en la pila, i-> 3
- El tercer paso: i ++: el valor de i se coloca en la pila y se incrementa en 1, i-> 4. En este momento, la operación de i termina, y finalmente se determina que soy 4
- Se calculan los tres números en la pila, y el resultado es 3 * 3 + 2 = 11, asignado a k, y finalmente se determina que k es 1
Resolución de problemas (distribución de flores)