Olá amigos, estou com um problema com o while, e por isso peço que me ajudem.
se insiro 3 alunos no arraylist turma e depois excluo 1 deles ou 2 aparece a mensagem de excluido mais de uma vez e junto com a mensagem de erro ao excluir.
[code] public void exluirAluno(){
String nome=inf.lerAlunoExluido();
Iterator it = turma.iterator();
while(it.hasNext()){
Aluno aluno=(Aluno) it.next();
if (nome.equals(aluno.getNome()))
{
it.remove();
System.out.println("Aluno excluido!");
}
else System.out.println("erro ao excluir aluno");
}
} [/code]
Olá amigo o problema continua, quando insiro 3 alunos no arraylist turma ele exclui dá a mensagem “Aluno excluido” e depois 2 vezes “erro ao excluir aluno”
if (nome.equals(aluno.getNome()))
{
it.remove();
System.out.println("Aluno excluido!");
}
else System.out.println("erro ao excluir aluno");
ele vai pesquisar cada indice do vetor, se o nome nao for igual ele mostra o “erro ao excluir aluno”.
Sendo assim, se o nome a ser excluido é o ultimo ele vai mostrar erro para os primeiros, o correto é fazer como o Gbzao! falou…
Colocar um try catch, para que de erro somente se ocorrer uma falha ao excluir e não se não for o procurado.
iii viajei desculpa eu estava olhando o codigo do dbzao,o seu pelo o else vai exibir erro qnts vezes o nome do aluno for diferente da variavel nome !!!
Eu acho que o problema está relacionado ao fato de você estar excluindo um objeto que esta em uma lista na qual está havendo uma iteração.
Se isso for verdade, talvez ao excluir você tenha que abandonar a iteração (break) logo em seguida.
Dê uma olhada na stack trace da exception e reflita sobre isso, se não resolver post a stack trace pra gente dar uma olhada também.