Duda sobre un array en java

Iniciado por elbrujo20, 2 Junio 2015, 03:34 AM

0 Miembros y 1 Visitante están viendo este tema.

elbrujo20

Bueno quisiera saber por que este array arroja este resultado:3,5,7,9 Lo que pasa es que no entiendo por da ese resultado se supone k tendria que imprimir todos los numeros hasta el 5 por que da 9 si no esta en el array aparte? no entiendo por que da esa secuencia y ocupo saber el por que de las cosas por es de examen esa pregunta pero no logro determinar ese resultado
Código (java) [Seleccionar]
int[] arreglo = {1,2,3,4,5};
       for(int i=0; i<(arreglo.length-1); i++){
           if(i <=(arreglo.length-1)){
               System.out.println(arreglo[i]+arreglo[i+1]);
}
}
}
}


Mod: los códigos deben ir en etiquetas GeSHi

DarK_FirefoX

#1
Primero que todo, utiliza las etiquetas GeSHi para publicar código.

Ahora, si lo que quieres es imprimir todos los valores del array:

Código (java) [Seleccionar]
int[] arreglo = {1,2,3,4,5};
       for(int i=0; i<arreglo.length; i++){
               System.out.println(arreglo[i]);
}


Si ese era tu objetivo, el código que tenías estaba mal

Primero que todo no es necesario poner un if para controlar que la variable iteradora esté por debajo del length, ya de eso se encarga la condición del for. Por otro lado, lo que estaba puesto dentro del método para imprimir, me parece algo raro, pues debes imprimir los elementos del arreglos, por lo tanto debes indexar en la variable i. Eso de sumarselo al array, no se como lo manejará Java, pero en C# da error de compilación, pues no se puede usar el operador + entre un array y un int

Salu2s

Coke951

#2
DarK_FirefoX tiene razón y, en Java si se puede usar el operador + entre un array y un int dentro de los corchetes, y estarias haciendo referencia al subindice si eso es a lo que se refiere.
Y sobre por que aparecen esos números, te lo explicare un poco:

Código (java) [Seleccionar]

System.out.println(arreglo[i]+arreglo[i+1]);


Tienes que saber que todos los arreglos tienen un subindice y cuando dices arreglo[i = variable] haces referencia a lo que hay en el arreglo[variable que manda el ciclo for]
Imagina que el ciclo for va en el primer ciclo, osease que i = 0 entonces
System.out.println(arreglo[0]+arreglo[0+1]);
Primero esta parte:
Código (java) [Seleccionar]
arreglo[i] ahí va a llamar al arreglo subindice 0 que es = 1, luego +arreglo[i+1] y ademas estas sumando con arreglo[i+1] ahi estas haciendo referencia al arreglo con subindice 1, por que i=0 + 1 = 1 y en el arreglo con subindice 1 hay un 2, entonces prácticamente estas sumando 1 + 2 por eso te da un 3 y asi igual con los demas ciclos, estas sumando el arreglo + el arreglo que le sigue.

No se si logre explicártelo correctamente, cuando vas empezando estas son de las cosas un poco mas complicadas de entender, yo lo aprendí hace poco y por eso te lo digo.
Saludos!

DarK_FirefoX

Cita de: Coke951 en  2 Junio 2015, 22:01 PM
DarK_FirefoX tiene razón y, en Java si se puede usar el operador + entre un array y un int dentro de los corchetes, y estarias haciendo referencia al subindice si eso es a lo que se refiere.

Si @Coke951, eso lo sé, pero el había puesto:

Código (java) [Seleccionar]
System.out.println(arreglo+arreglo[i+1]);

Salu2s