Erro ao imprimir vetor

7 respostas
faicoxim

Pessoal me ajuda, não consigo imprimir o vetor

import java.util.Scanner;

public class Time
{
	Integer codigo;
	String nomeclube;
	String corcamisa;
	String cidade;
	String estado;
	String tecnico;


	public void Escolha()
	{
		Scanner sc = new Scanner(System.in);
		String[] cadastro = new String[2];
		for(int x = 0; x <= cadastro.length; x++)
		{
			System.out.println("Entre com o codigo do Time: ");
			codigo = sc.nextInt();
			String cod1 = Integer.toString(codigo);
			System.out.println("Entre com o Nome do Clube: ");
			nomeclube = sc.next();
			System.out.println("Entre com a Cor da Camisa: ");
			corcamisa = sc.next();
			System.out.println("Entre com a Cidade do Time: ");
			cidade = sc.next();
			System.out.println("Entre com o Estado do Time: ");
			estado = sc.next();
			System.out.println("Entre com o Técnico do Time: ");
			tecnico = sc.next();
			cadastro[x] = cod1;
			cadastro[x] = nomeclube;
			cadastro[x] = corcamisa;
			cadastro[x] = cidade;
			cadastro[x] = estado;
			cadastro[x] = tecnico;

		}
		for(int x = 0; x <= cadastro.length; x++)
		{
			//String contador = cadastro[x];
			System.out.println(cadastro[x]);     // não consigo imprimir oque esta armazenado aqui
		}
	}
/*	public String Retornar()
	{

	}*/
}
class TimeTeste
{
	public static void main (String args[])
	{
		Time time = new Time();
		Integer escolha=0;
		Integer opcao=0;
		Scanner sc = new Scanner(System.in);
		System.out.print("1 - Cadastrar o Time \n2 - Retornar o Time pelo Nome \nEntre com a escolha: ");
		Integer menu = sc.nextInt();
		switch (escolha)
			{
				case 0:
				System.out.println("Cadastrar o Time\n");
				time.Escolha();
				break;

				case 1:
				System.out.println("Retornar o Time pelo nome\n");
				break;

				default:
				System.out.println("Opção inválida");
			}
	}
}

7 Respostas

henriqueluz

Qual é o erro que você obtém?

Nesse trecho do seu código:

cadastro[x] = cod1; cadastro[x] = nomeclube; cadastro[x] = corcamisa; cadastro[x] = cidade; cadastro[x] = estado; cadastro[x] = tecnico;

Você está sobrescrevendo a sua string que está no posição “x” no seu vetor de cadastro.
O ultimo elemento seria o técnico.
Assim você está perdendo as outras informações.

faicoxim

Ta dando esse erro

Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 2

at Time.Escolha(Time.java:32)

at TimeTeste.main(Time.java:65)
nel

Oi!

Ta vendo isso?

x <= cadastro.length

Está errado. Tira o “=” dali. É somente

x < cadastro.length

Lá dentro do for que está no método Escolha.
Só uma coisa, não fuja ao padrão dando nomes a métodos que iniciem com letra maíuscula.

rijava

Ta dando esse erro

Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 2

at Time.Escolha(Time.java:32)

at TimeTeste.main(Time.java:65)</blockquote>

Essa exceção está ocorrendo porque você está tentando acessar uma posição fora seu vetor de Strings.
o que o nel disse resolveria seu problema.

R

Só para complementar, sempre que vc encontrar algo como
java.lang.ArrayIndexOutOfBoundsException, então vc já pode esperar que por algum motivo o valor de seu vetor não está de acordo com o tamanho especificado.
veja:

int v[] = new int[10];

 for(int i = 0; i <= 10; i++)
   {
      v[i] = i;
   }

no código acima vai ocorrer o java.lang.ArrayIndexOutOfBoundsException, pois como o amigo informou acima, existe uma grande diferença entre i <= 10 e i < 10.
No exemplo que fiz, o vetor de tamanho 10 irá receber 11 posições o que está errado.

lucasportela

use o foreach que não dá esse erro

for (String valor : cadastro) { System.out.println(valor); }

R

Se vc tiver problemas com o dimensionamento, vc pode usar um ArrayList, que se comporta como um “Array ilimitado”

Criado 18 de agosto de 2011
Ultima resposta 19 de ago. de 2011
Respostas 7
Participantes 6