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.
publicvoidexluirAluno(){Stringnome=inf.lerAlunoExluido();Iteratorit=turma.iterator();while(it.hasNext()){Alunoaluno=(Aluno)it.next();if(nome.equals(aluno.getNome())){it.remove();System.out.println("Aluno excluido!");}elseSystem.out.println("erro ao excluir aluno");}}
publicvoidexluirAluno(){Stringnome=inf.lerAlunoExluido();Iteratorit=turma.iterator();while(it.hasNext()){Alunoaluno=(Aluno)it.next();if(nome.equals(aluno.getNome())){try{it.remove();System.out.println("Aluno excluido!");}catch(Exceptione){System.out.println("erro ao excluir aluno");}}}}
dicabeca
cara debuga o codigo antes d remover o aluno da um print em qual aluno,pq aparentemente esta certo
ffiorim
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”
dicabeca
faz os seguinte colo isso no codigo
1.publicvoidexluirAluno(){2.3.Stringnome=inf.lerAlunoExluido();4.Iteratorit=turma.iterator();5.6.while(it.hasNext()){7.Alunoaluno=(Aluno)it.next();System.out.println(nome+" | "+aluno.getNome());8.if(nome.equals(aluno.getNome())){9.try{10.System.out.println(aluno.getNome());it.remove();11.System.out.println("Aluno excluido!");12.13.}catch(Exceptione){14.System.out.println("erro ao excluir aluno");e.printStackTrace()15.}16.}17.}18.}
e posta oq deu no console
X
xxta
Analise esta parte do código:
if(nome.equals(aluno.getNome())){it.remove();System.out.println("Aluno excluido!");}
elseSystem.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.
Espero que entenda!
abraço
dicabeca
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 !!!