Pessoal, poderiam me ajudar com esse erro?

4 respostas
F
import java.util.Scanner;

public class Menu {

	public static void main(String[] args) {
		int contador = 0, opcao;
		int  i = 0;
		Scanner input= new Scanner(System.in);
		System.out.println("Deseja criar qtas contas:");
		contador = input.nextInt();
		Conta[] conta= new Conta[contador]; 
		
		for (i=0; i < contador; i++){
			System.out.println("1 - Conta Comum		2 - Conta Especial		0 - Sair");
			opcao = input.nextInt();
			
			switch(opcao){
				case 1:		
					Conta contaC = new Conta(null, 0, 0);
					contaC.criaConta();
					conta[i]= contaC;
					break;
					
				case 2:
					ContaEspecial contaE = new ContaEspecial(null, 0, 0, 0);
					contaE.criaConta();
					conta[i]= contaE;
					System.out.println("Digite o limite:"); 
					contaE.setLimite(0);
					break;
					
				default:
					break;
			}
		}
		if (conta[0] != null){
			conta[0].deposito(560);				
		}
		
		if (conta[1] != null){                //O erro é apresentado aqui!!! array Exception in thread "main" 
			conta[1].saque(390);      //java.lang.ArrayIndexOutOfBoundsException: 1
		}                                          //	at Menu.main(Menu.java:40)  
		
		for (i=0; i < contador; i++){
			System.out.printf("%s\n\n", conta[i].toString());
		}
			
	}


}

Não consigo referenciar esse saque para o último elemento do vetor
obrigado

4 Respostas

F

ao invés de 1 no índice, eu coloquei o contador e não deu certo

fantomas

E ai fernandomoncao.

Acho q o erro é o seguinte:

Note que o valor da variável contador é 0 --> " int contador = 0, opcao; ", logo o array conta é criado com uma única ocorrencia --> Conta[] conta= new Conta[contador];

Quando se referencia conta[1] estamos apontando para a 2 ocorrencia de um array de DUAS ocorrencias, que não é o seu caso porisso ocorre o erro.

Outro detalhe é que com o conteúdo da variável contador igual a zero o codigo sob o dominio do comando FOR não é processado --> for (i=0; i < contador; i++) porque o valor da variável i é IGUAL a da variável contador (ZERO) e não “MENOR QUE” como consta na expressão do comando.

[]'s

F

mas eu altero o valor da variavel contador qdo pergunto qual o nº de contas que o usuário deseja
não deveria mudar?

fantomas

Sim, é verdade…

Deixei escapar alguns detalhes do seu código.

Olhando uma pouco melhor percebi umas coisinhas:

for (i=0; i < contador; i++){

Está faltando o tipo na declaração da variável i do comando for.

int  i = 0;

Como vc já declarou a variável i antes do comando for isso deveria dar erro de duplicidade de variáveis.

A IDE que vc está utilizando não lhe avisou destes erros?

Talvez vc esteja com o arquivo .java e o .class fora de sincronia.

Se ainda estiver com problemas post tambem as classes Conta e ContaEspecial pra gente fazer testes.

[]'s

Criado 1 de agosto de 2008
Ultima resposta 1 de ago. de 2008
Respostas 4
Participantes 2