[Resolvido] por favor, me ajudem , sou iniciante

8 respostas
A

Estou tentando compilar o código abaixo mas esta dando erro. O que pode ser?

package teste;

public class Teste {

public static void main(String[] args) {
    // All code application logic here
    
    Apartamento aP = new Apartamento();

    aP.obterMetragem();
    aP.mostrarAP();        
                    
}

}

package teste;
import javax.swing.JOptionPane;

public class Apartamento {

double compr,larg, areaTotal;
double comodo[] = new double[5];
String mensag1="";
   
public void obterMetragem(){   
    for (int i=1 ; i<=comodo.length; i++)
    {
        compr = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite comprimento do "+i+ "º comodo"));
        larg = Double.parseDouble(JOptionPane.showInputDialog(null,"Digite largura do "+i+ "º comodo"));

        comodo[i] = Apartamento.m2(compr,larg);
    }
}

public void mostrarAP(){
    for (int i=1 ; i<=comodo.length; i++){
    
        mensag1 = mensag1 + "O Tamanho do comodo "+i+" é: "+comodo[i]+"M²\n";
        areaTotal = areaTotal + comodo[i];
    }
    JOptionPane.showMessageDialog (null, mensag1 );
    JOptionPane.showMessageDialog (null, "Total de m² do AP: "+areaTotal);
    JOptionPane.showMessageDialog (null, "Total em c² do AP: "+Apartamento.cm2(areaTotal));
}

//CALCULA METRO QUADRADO 
public static double m2(double compr, double larg){
    
    return compr*larg;
}

//CONVERTE METRO QUADRADO EM CENTIMETRO QUADRADO
public static double cm2(double x){
    
    return x*10000;
}

}

8 Respostas

igor_ks

Que erro que da? em que linha?

D

Onde está

Substitua por
comodo[i - 1]

O vetor vai de 0 a 4 e seu loop (for) vai de 1 a 5

A

Ola Senhores. Desculpe a demora em responder pois estava com problemas na minha NET.

o erro ocorre na linha que o vetor COMODO [ i ] recebe o retorno do método m2(compr,larg):

erro: Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4

obrigado pela atenção

L

O segredo parece estar aqui…

for (int i=1 ; i<=comodo.length; i++) ...

Para não ocorrer essa exception:

for (int i=0 ; i<comodo.length; i++)...

A forma que o colega @diego12 mostrou é válida, mas você precisa se preocupar em calcular o índice, etc e como ele explicou, todo vetor começa do zero até limite - 1 e não do um…

Thi_Ego

Esse erro ai diz respeito a você estar trabalhando com um vetor que não supri a necessidade de sua estrutura de repetição, sendo assim a respeito do nosso caro amigo Diogo é bem viável, analise-a.

A

Já fiz indo de 0 ate 4 conforme o amigo Diogo informou, mas continua com o mesmo erro.

D

Testei aki e funcionou

São 3 comodo[i] que devem ser mudados para comodo[i - 1].

Tem q mudar aí tambem.

Ou então fazer o que @LostSoldier disse

A

Deu certo agora. Muito obrigado a todos pela disposição em me ajudar.
Realmente não estava prestando atenção no limite do array. vlw :slight_smile:

Criado 30 de março de 2016
Ultima resposta 7 de abr. de 2016
Respostas 8
Participantes 5