do {
System.out.println("Opções: contas, dados de clientes e funcionários");
opcao = src.next();
} while ((!opcao.equals("contas")) || (!opcao.equals("dados de clientes")) || (!opcao.equals("funcionarios")) || (!opcao.equals("funcionários")));
Isso ta gerando um loop, mesmo eu digitando uma das opcoes corretas ele repete o do while e quando eu digito “dados de clientes” ele aparece a mensagem 3 vezes.
Se vc der uma lida nas minhas 3500 mensagens, vai ver que eu não costumo a desrespeitar outros usuários do fórum. E que o fórum que eu mais gosto de participar é o de iniciantes, além dos tópicos sobre threads e jogos.
Vc perguntou, eu respondi. Mas não pude deixar de comentar que quem era bugado não era o while… em geral, é pouco provável que a linguagem tenha erros (embora eu já tenha pegado alguns erros em algumas APIs do Java, em especial o Swing).
Cara troca também esse trecho opcao = src.next() por opcao = src.nextLine();
por que o método next() tem como delimitador o espaço ,ou seja se vc digitar a seguinte frase;
"dados de clientes " o método next() vai ler a string até encontrar um espaço e para.
espero ter te ajudado amigão!!
[quote=jayrmotta]Nossa fi, se ta de TPM?
Haha, aqui come um chocolate! rs
Eu sou iniciante e por isso estou no java básico… nao precisa me da um tiro porque eu errei, era só nao responder![/quote]
O ViniGodoy foi bem educado até. Geralmente quando eu vejo umn erro desses de lógica eu fico P da vida e ia xingar… hehehehe
Não entendi essa tua colocação também… Até pensei que tinha um outro post antes do Vini, que foi deletado por ter sido muito grosseiro…
Bom acho que não é por ai galera.Aqui no forum tem de tudo ,desde o iniciante ao super mega profissional.Mas quem entre nós nunca cometeu um erro básico?Vamos todos com calma.Inclusive
xingar alguém porque erra?Ninguém nasce sabendo tudo todos aprendemos
atráves de tentativas e erros.O titulo while bugando é ofensivo ?Me parace que este forum não é do
James Gosling ,por tanto não vejo mótivo para tanta confusão.
sim eu cometi um erro infame … eu conheço java a 1mes … me desculpem … só nao precisava 5000 post pra criticar ao inves de solucionar o problema e dar closed no topic
O “bugado é a sua lógica” foi uma ironia, uma brincadeira, pq vc disse que o while era bugado.
Mas é bom lembrar que em fórum não tem entonação de voz, nem tom de brincadeira.
Por isso a sua má interpretação. E, lendo de novo, a frase ficou meio esquisita mesmo.
Aliás, por conta da falta de entonação, eu também não me ofendi quando vc disse:
"Nossa fi, se ta de TPM?
Haha, aqui come um chocolate! rs "
Pelo rs, eu deduzi que vc tava brincando também.
Via de regra, é sempre bom achar que o pessoal do fórum não tá atirando pedra em vc.
Mesmo que pareça o contrário.
Agora que eu notei. Vc também pode tirar para fora dos parênteses todos aqueles nots:
Lembre-se !(A || B) == !A && !B
Portanto, se você prefere o OU, pode deixar o while assim:
do {
System.out.println("Opções: contas, dados de clientes e funcionários");
opcao = src.next();
} while (!(opcao.equals("contas") || opcao.equals("dados de clientes") || opcao.equals("funcionarios") || opcao.equals("funcionários"));