Arrays

5 respostas
E
Não estou entendendo o porque meus vetores estão estourando...! vou passar dois exemplos...!
import javax.swing.*;

public class Prog
{
	public static void main(String args[])
	{
		JTextArea texto = new JTextArea(10,10);
		String saida="Prog\n";
		
		int vet[]= new int [5];
		
		for(int i=5;i>0;i--)//esse for o valor dele e 5,4,3,2,1 repete 5 vezes é o tamanho do vetor é 5..."
		{
		vet[i]=Integer.parseInt(JOptionPane.showInputDialog("Dígite o "+(i)+"° número"));
		}
		
		texto.setText(saida);
		JOptionPane.showMessageDialog(null,texto);
	}
}
Exemplo 1 declarei um vetor de 5 posições e um for de 5 repetições for(i=5;i>0;i++) { vai ficar 5,4,3,2,1 cinco vezes é o tamanho do vetor e de 5 posições porque está estourando...????

}

*******************************

import javax.swing.*;
import java.util.*;

public class AED8
{
	public static void main(String args[])
	{
		Random aleatorio = new Random();
		JTextArea texto = new JTextArea(10,10);
		int vet[][]= new int[9][9];
		int i,j,soma=0,x=-1;
		String saida="Programa 8 \n";
		
		for(i=0;i<9;i++)
		{
			for(j=0;j<9;j++)
			{
				vet[i][j]=1+aleatorio.nextInt(9);
		
				saida+=vet[i][j]+"   ";

			}
			
			saida+="\n";
		}
		saida+="\n";
		for(i=9;i>0;i--)
		{
			
			x++	;		
			     saida+=vet[i][x];
			     
	
			 
			 saida+="\n";
		}
		
	
		
		texto.setText(saida);
		JOptionPane.showMessageDialog(null,texto);
	}
}
exemplo 2

Estou fazendo um programa que indentifique a matriz secundária... mas como o for tem que ser descrescente também está estourando pelo mesmo motivo alguém sabe o porque...?

5 Respostas

C

Cara, manda o erro pra gente, por favor.

J

A indexação de arrays é de 0 a tamanho do array - 1

no seu caso os indices são 0, 1, 2, 3, 4 e não 1, 2, 3, 4, 5

E

Você errou cara realmente é aquilo que eu falei…!
vou colocar um programa que prova isso…!

import javax.swing.*;

public class Prog
{
	public static void main(String args[])
	{
		JTextArea texto = new JTextArea(10,10);
		String saida="Prog\n";
		
		int vet[]= new int [5];
		
		for(int i=5;i>0;i--)
		{
			saida+=i;
			
		}
		
		texto.setText(saida);
		JOptionPane.showMessageDialog(null,texto);
	}
}

O que eu aprendi na faculdade é o seguinte sobre for
exemplo:
fori(i=0;i<5;i++) funciona assim vo colocar em ordem como as coisa acontecem…!
(1° inicilização;2°condição;4°incremento||decremento)
3°valor inicialização

se vc verificar e isso que eu falei 5,4,3,2,1 pois 0 não é menor k zero dai sai!

pelo que eu to vendo aki tem k iniciar algum indíce do vetor com zero que é o zero ésimo realmente é por isso que tah dando pau…??

J

Não foi isso que falei, o seu for vai percorrer os numeros 1, 2, 3, 4, 5 mesmo, mas 5 não é indice do seu array por isso está "estourando" como você disse, seu for deveria ir de 4 a 0 e não de 5 a 1 como está fazendo... os indices do seu array são 0, 1, 2, 3, 4... começa do 0, entendeu?

o correto seria:

int vet[]= new int [5];
      
for(int i=4;i>=0;i--)
{
   vet[i]=Integer.parseInt(JOptionPane.showInputDialog("Dígite o "+(i)+"° número"));
}
E

Sim cara foi burrice minha pois não interpretei muito bem…!
e o tal do zero-ésimo que eu esqueci mais valew vc me ajudou muito…!

Criado 23 de agosto de 2006
Ultima resposta 23 de ago. de 2006
Respostas 5
Participantes 3