Preciso de ajuda com um vetor ( é apenas pra mim, não é exercício de casa) obrigado!

4 respostas
illoweber

Bom dia, sou iniciante em java, e estou com um problema no meu vetor, dá esse erro:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at OrdenarVetores.main(OrdenarVetores.java:30)
Java Result: 1

Vou colocar o código, se alguém puder me ajudar, eu agradeço muito:

import javax.swing.JOptionPane;

//Programinha básico para ordenar números digitados pelo usuário em ordem crescente;
public class OrdenarVetores {
    public static void main (String args[]){
        int[] numero; //variável que vai ser usada para convertermos os números lidos em formato string pelo usuário
        String[] leitor; //variável que vai ser usada para lermos os números digitados pelo usuário
        numero = new int[5];
        leitor = new String[5];
        
        for (int i=0;i<numero.length;i++){ //for utilizado para lermos os números, desculpe mais só conheço este modo de leitura de dados
            leitor[i] = JOptionPane.showInputDialog("Informe o valor: ");
            numero[i] = Integer.parseInt(leitor[i]);
                  
        }
        //aqui embaixo está o for com problema, ocorre um tal de erro de exceção na linha 31, sei lá o que é isso
        //Este é o erro que dá - Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        for (int i=0; i<numero.length;i++){
            for (int j=0; j<numero.length;i++){
                if (numero[i] <= numero[j]) {
                    int aux = numero[j]; //variável auxiliar, para armazenar os números dos vetores;
                    numero[j]=numero[i];
                    numero[i]=aux;
                }
            }
        }


        for (int i=0; i<numero.length;i++){
            System.out.println(numero[i]);


        }
    }
}
Valeu!

4 Respostas

pmlm
for (int j=0; j<numero.length;i++){

Esta linha está errada.

Deve ser j++ e não i++.

ignacio83

Corrigido

for (int i=0; i<numero.length;i++){   
   for (int j=0; j<numero.length;j++){   //AQUI É J++ ao invés de I++
      if (numero[i] <= numero[j]) {   
         int aux = numero[j]; 
         numero[j]=numero[i];   
         numero[i]=aux;   
   }   
}

Essa exceção significa que vc tentou acessar o vetor utilizando um indice inexistente.

G
for (int j=0; j<numero.length;i++){  
    if (numero[i] <= numero[j]) {  
        int aux = numero[j]; //variável auxiliar, para armazenar os números dos vetores;  
        numero[j]=numero[i];  
        numero[i]=aux;  
    }  
}

Realmente na linha 19 do codigo ai tem um erro, troque o i++ pelo j++

illoweber

pmlm:
for (int j=0; j<numero.length;i++){
Esta linha está errada.

Deve ser j++ e não i++.

Muitissímo obrigado, desculpe a minha ignorância;

Realmente Esse é o melhor fórum de java em língua portuguesa!

Valeu!

Criado 23 de abril de 2009
Ultima resposta 23 de abr. de 2009
Respostas 4
Participantes 4