Java - Problemas en mis primeros pasos

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Problemas en mis primeros pasos

Publicado por Prettel1 (3 intervenciones) el 14/12/2018 00:37:46
Hola estoy aprendiendo a programar y he tenido los siguientes porblemas me gustaria ayuda

Problema 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import javax.swing.*;
public class factorial {
 
 public static void main (String[] args) {
 
  int resultado=1;
  int factorial=Integer.parseInt(JOptionPane.showInputDialog("Ingrese el numero Factorial a Operar"));
 
  for(int i=0; i>factorial; i++) {
 
   resultado=(resultado*i);
 
 
  }
  System.out.println(resultado);
 }
}


en el condicional del for he usado , i>factorial; i>=factorial; i==factorial;
pero nada funciona


Problema 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cuando corro este codigo
import javax.swing.*;
 
 
public class alimentnado_matriz {
 
	public static void main (String[] args) {
 
		String [] paises=new String [5];
 
		for(int i=0;i<6;i++) {
 
			paises[i]=JOptionPane.showInputDialog("Introduce pasies");
 
		}
 
		for (String elemento:paises	) {
			System.out.println(elemento);
 
		}
 
	}
}
me sale el siguiente error
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at alimentnado_matriz.main(alimentnado_matriz.java:14)

gracias pro el tiempo que han dedicado a leer y ayudarme en mis dudas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas en mis primeros pasos

Publicado por Billy Joel (876 intervenciones) el 14/12/2018 04:36:34
El factorial lo debes calcular así;
1
2
3
4
5
int factorial = Integer.parseInt(JOptionPane.showInputDialog("Ingrese el numero Factorial a Operar"));
int resultado = 1;
for (int i = factorial; i >= 1; i--) {
    resultado = resultado * i;
}

Y en el segundo problema, para recorrer un arreglo lo puedes hacer así:
1
2
3
4
5
6
7
String[] paises = new String[5];
for (int i = 0; i < paises.length; i++) {
    paises[i] = JOptionPane.showInputDialog("Introduce pasies");
}
for (String elemento : paises) {
    System.out.println(elemento);
}

En todo caso el error lo tenías en la línea del primer for. Puedes iterar el arreglo como lo sugerí arriba (Muy recomendado); aunque también podrías hacerlo así:
1
for (int i = 0; i < 5; i++) {

Espero haberte ayudado, cualquier duda escribe...
Saludos!!
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Problemas en mis primeros pasos

Publicado por Alfredo (3 intervenciones) el 14/12/2018 21:05:20
Gracias por el tiempo de responder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas en mis primeros pasos

Publicado por Kabuto (1381 intervenciones) el 14/12/2018 12:07:41
1
String [] paises=new String [5];
Esto significa que el array tiene 5 elementos.
Los elementos se enumeran a partir del 0 en adelante.
Es decir, que si tiene 5 elementos, los elementos del array tendrán estos indices:
0, 1, 2, 3, 4

Ergo, si para recorrer el array usas este bucle:
1
for(int i=0;i<6;i++) {
Estás permitiendo que i llegue a tener valor 5.
Y entonces intentará leer el elemento del array con el indice 5, pero ya hemos dicho que no existe dicho elemento, ya que solo llega hasta el indice 4.
Por esto te lanza la excepción: IndexOutOfBounds, que significa que el indice se "ha salido de los límites".

Para que esto no ocurra, tu bucle no debe permitir que la i pase de valor 5
1
for(int i=0;i<5;i++) {

Incluso, habrá veces que trabajes con arrays de los cuáles no vas a saber de antemano que tamaño van a tener, así que en el bucle for en lugar poner un valor fijo para el límite, puedes pedirle al array que te informe de su "longitud" para establecer el límite:
1
for(int i=0;i<paises.length;i++) {
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Problemas en mis primeros pasos

Publicado por Alfredo (3 intervenciones) el 14/12/2018 21:07:40
Me queda perfectamenbte claro, agradezco y valoro el tiempo dedicado.
Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar