Foro sobre Java SE > Duda ciclo
Hola, cuando no entiendas un ciclo o no veas bien que es lo que hace, lo mejor es realizar la simulación del bucle en un papel, de esa manera te das cuenta de lo que va pasando. Hagamoslo:
Inicialmente tenemos que:
a={1 ,2 ,3 ,4 }
Primera iteraccion:
i=1.
a[0]=a[1] es decir, en la posicion 0(valor 1) ponemos el valor de a[1](valor 2)
a={2 , 2 , 3, 4}
Segunda iteración:
i=2
a[1]=a[2] es decir, en la posición 1(valor 2) ponemos el valor de a[2](valor 3)
a={2,3,3,4}
Y finalmente, tercera iteración:
i=3
a[2]=a[3] es decir, en la posicion 2(valor 3) ponemos el valor de a[3](valor 4)
a={2,3,4,4}
Por lo tanto, al terminar el bucle, en la primera posición del array(a[0]) lo que hay es un 2, el 1 que había inicialmente fue sustituido en la primera iteracion al sustituir el valor de a[0] por el valor de a[1] , y por eso te imprime un 2, en lugar de un 1.
Y eso, cuando no veas que pasa en un bucle, coge un papel y un boli y haz esto.... Siempre que no sean mas de 5 o 6 iteraciones, si fueran mas, haz las 6 o 7 primeras y deberías darte cuenta de lo que debería pasar con las restantes.
Bueno si no entiendes algo comenta. Un saludo!
Muchísimas gracias, seguiré tu consejo y usaré lápiz y papel, la verdad es que así está todo mucho más claro
Un saludo y gracias de nuevo
Hola de que tal
tengo otro ciclo que no consigo entender
int [] a = { 1, 2, 3, 4 };
for(int i=1; i<a.length;i++){
a[i-1]= a[i];
}
System.out.print(a[0]);
El resultado de este ciclo es dos, pero no consigo entender porque.
se supone que el for aumentará la variable i hasta 3, y luego a[i-1]= a[i] me daría 2.
lo que no entiendo es que al imprimir a[0] no me de 1
un saludo
Rubén