Java - Arreglo consulta

 
Vista:

Arreglo consulta

Publicado por Sebastian (1 intervención) el 06/03/2007 22:12:02
Cuando ejecuto la siguiente clase genera este mensaje:
java.lang.ArrayIndexOutOfBoundsException: 3
at CasoPrueba.mostrarSalida(CasoPrueba.java:53)
at CasoPrueba.init(CasoPrueba.java:14)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Me gustaría saber cual es el motivo de este error y su posible solución.
Muchas gracias!!!!

import javax.swing.*;
import java.awt.*;

public class CasoPrueba extends JApplet {
String salida = " ";

public void init()
{

int arreglo [][];
arreglo = new int [3][4];

llenarArreglo(arreglo);
mostrarSalida(arreglo);

JTextArea areaSalida = new JTextArea(salida);
areaSalida.setText ("Los resultados son");

Container contenedor = getContentPane();
contenedor.add(areaSalida);

areaSalida.append (salida);

}//fin del metodo init

public void llenarArreglo (int arreglo[][])
{
String cadena1 = " ";
String cadena2 = " ";

int valor1 = 0;
int valor2 = 0;

for(int fila = 0; fila < arreglo.length; fila++)
{
for ( int columna = 1; columna < arreglo[fila].length; columna++)
{
cadena1 = JOptionPane.showInputDialog ("Ingrese la nota");
valor1 = Integer.parseInt(cadena1);
arreglo[fila][columna] = valor1;

}//fin del bloque for interno

}//fin del bloque for externo

}//fin del metodo llenarArreglo


public void mostrarSalida (int arreglo[][])
{
for (int contador = 0; contador < arreglo.length; contador ++)
{
for( int contadorColumna = 1; contador < arreglo [contador].length; contador++)
{
salida += arreglo[contador][contadorColumna] + " " + "\n";

}//fin del bloque for interno

}//fin del bloque for externo

}//fin metodo mostrarSalida


}//fin de la clase
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

RE:Arreglo consulta

Publicado por Gonzalo (180 intervenciones) el 06/03/2007 22:54:42
cambia:
for( int contadorColumna = 1; contador < arreglo [contador].length; contador++)
por:
for( int contadorColumna = 0; contadorColumna< arreglo [contador].length; contadorColumna++)

Y ya que estás, cambia también:
for ( int columna = 1; columna < arreglo[fila].length; columna++)
por:
for ( int columna = 0; columna < arreglo[fila].length; columna++)
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

RE:Arreglo consulta

Publicado por angel (537 intervenciones) el 06/03/2007 22:56:27
El fallo esta n los bucles estas inicializando las variables "columna " y "contadorColumna " a 1, en el primero no producira un error pero t saltas la primera posicion que es 0 y en el segundo,,ya que el valor que comparas en columna y no contadorColumna y el que incrementas en contadoColumna ,,hay tienes l problema,,que nunca saldras del for y accedes a posicion no validas del array.

Revisa si quieres inicializar las variables a 1 y saltarte la primera posicion y si el valor que quieres comparar en el segundo for es columna y no contadorColumna .

Saludos.
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