Estou com um Problema : Estou fazendo um programa com importação JOptionPane , e coloquei um valor para uma variável com String e JOptionPane . Até aí tudo bem, mas eu quero que , quando eu colocar o “if(variavel.equals(“Texto”))” exista mais de um “Texto”, um “Texto2”.
Eu tentei usar || mas não dá certo… Como eu poderia arrumar isso ???
Qual a sua verdadeira dificuldade? Estou achando que o valor da variável tem alguma sujeirinha que não deixou o teste rodar do jeito que você imaginou, pelo que imagino.
LucasJavaTry
Amigo, para evitar todas as dúvidas colocarei o programa (antes rodava perfeito , até colocar o || para mais opções) :
/** * * @author Lucas */importjavax.swing.JOptionPane;publicclassProjetoJOptionPane{publicstaticvoidmain(String[]args){//Começo TudoStringa=JOptionPane.showInputDialog("Voce e do Brasil???");if(a.equals("sim"||"Sim"||"SIM")){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues");}else{JOptionPane.showMessageDialog(null,"Entao você nao fala portugues");//Fim Tudo}}}
S
Sem_Nome
LucasJavaTry:
pmlm:
Como é que usaste o || ?
Amigo, para evitar todas as dúvidas colocarei o programa (antes rodava perfeito , até colocar o || para mais opções) :
/** * * @author Lucas */importjavax.swing.JOptionPane;publicclassProjetoJOptionPane{publicstaticvoidmain(String[]args){//Começo TudoStringa=JOptionPane.showInputDialog("Voce e do Brasil???");if(a.equals("sim"||"Sim"||"SIM")){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues");}else{JOptionPane.showMessageDialog(null,"Entao você nao fala portugues");//Fim Tudo}}}
O correto é:
/** * * @author Lucas */importjavax.swing.JOptionPane;publicclassProjetoJOptionPane{publicstaticvoidmain(String[]args){//Começo TudoStringa=JOptionPane.showInputDialog("Voce e do Brasil???");if(a.equals("sim")||a.equals("Sim")||a.equals("SIM"))){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues");}else{JOptionPane.showMessageDialog(null,"Entao você nao fala portugues");//Fim Tudo}}}
Ainda sim seu if está muito feio :P
Rodrigo_Sasaki
Você pode fazer como o entanglement disse, mas como é sempre a mesma palavra, só muda se está em maiúsculo ou não, você pode usar um outro método.
EDIT: lembre-se que usando o equalsIgnoreCase sempre que vierem a palavra “sim” independente de qual letra for maiúscula ou minúscula, ele retornara true. Ex: se o usuário digitar “siM” ele irá retornar true.
LucasJavaTry
Amigos , agora quero colocar a resposta não , colocando uma mensagem diferente , porque se alguém colocar “ÇALALALALAL” , por exemplo, falar : “Não entendi a mensagem” ;
(Eu penso que provavelmente colocar um 2º if e apenas 1 else . )
Obrigado !
S
Sem_Nome
É só você colocar um if que verifica se ele escreveu não e depois dele um else que mostra o sua mensagem dizendo que você não entendeu o que ele disse.
LucasJavaTry
Olá novamente amigos;
Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .
Obrigado!
S
Sem_Nome
LucasJavaTry:
Olá novamente amigos;
Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .
Obrigado!
Não entendi a sua duvida.
LucasJavaTry
Sem_Nome:
LucasJavaTry:
Olá novamente amigos;
Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .
Obrigado!
Não entendi a sua duvida.
Desculpe, Sem_Nome , tenho que avisá-lo de 2 coisas :
1 - Eu não entendi como fazer a parte do if e else que você falou, porque da erro, se eu coloco não, o else compila primeiro que o segundo if .
2 - Fiz “caca”, esqueci de colocar a dúvida ; quero saber como colocar para quem respondeu sem lógica um return para o input , e a mesma coisa para quem respondeu em nulo .
S
Sem_Nome
LucasJavaTry:
Sem_Nome:
LucasJavaTry:
Olá novamente amigos;
Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .
Obrigado!
Não entendi a sua duvida.
Desculpe, Sem_Nome , tenho que avisá-lo de 2 coisas :
1 - Eu não entendi como fazer a parte do if e else que você falou, porque da erro, se eu coloco não, o else compila primeiro que o segundo if .
2 - Fiz “caca”, esqueci de colocar a dúvida ; quero saber como colocar para quem respondeu sem lógica um return para o input , e a mesma coisa para quem respondeu em nulo .
Posta o seu codigo (com o erro no if).
nel
LucasJavaTry:
Olá novamente amigos;
Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .
Obrigado!
Use um laço de repetição. O do-while fará isso com tranquilidade.
R
Ramon_Pires
usa o startsWith da String:
if(variavel.startsWith("Texto")){..............}
o startsWith verifica se a string começa com o a string passada como parâmetro.
LucasJavaTry
Gente , agora não entendi nada , só da erro . Meu código é :
/** * * @author Lucas */importjavax.swing.JOptionPane;publicclassProjetoJOptionPane{publicstaticvoidmain(String[]args){//Começo Tudodo{Stringa=JOptionPane.showInputDialog("Voce e do Brasil???");}while(a.equals(null))||(a.equalsIgnoreCase("nao"))||(a.equalsIgnoreCase("não"))if(a.equalsIgnoreCase("sim")){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues");}else{}if(a.equalsIgnoreCase("não"))||(a.equalsIgnoreCase("nao")){JOptionPane.showMessageDialog(null,"Entao você nao fala portugues");else{JOptionPane.showMessageDialog(null,"Nao entendi, repita por favor) ; //Fim Tudo } }}
Obrigado!!!
nel
Que bagunça hein ?
Faça sem o do-while, primeiramente. Depois de sua lógica funcionar, apenas aplique-o. Pense com calma, você quer verificar se o usuário digitou sim ou não, qualquer coisa diferente disso deve ser inválida. Algo como:
Stringa=JOptionPane.showInputDialog("Voce e do Brasil???"); if(a.equalsIgnoreCase("sim")){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues"); }elseif(a.equalsIgnoreCase("não")){JOptionPane.showMessageDialog(null,"Entao você nao fala portugues"); }else{JOptionPane.showMessageDialog(null,"Nao entendi, repita por favor"); }
Viu ? Agora é pensar em como aplicar o do-while nesse código. E uma dica, não faça a.equals(null). Se é é null mesmo, ele vai dar NullPointerException. null é diferente de “null” (isso é uma String!).
ErickRAR
Pode também simplificar um pouco.
Stringa=JOptionPane.showInputDialog("English Motherf***r Do You Speak It???");Stringmensagem="";if(a.equalsIgnoreCase("yes"))mensagem=" So now you know";elseif(a.equalsIgnoreCase("no"))mensagem="You read the Bible, Brett?";elsemensagem="Say 'what' again. I dare you";JOptionPane.showMessageDialog(null,mensagem);
LucasJavaTry
nel:
Que bagunça hein ?
Faça sem o do-while, primeiramente. Depois de sua lógica funcionar, apenas aplique-o. Pense com calma, você quer verificar se o usuário digitou sim ou não, qualquer coisa diferente disso deve ser inválida. Algo como:
Stringa=JOptionPane.showInputDialog("Voce e do Brasil???"); if(a.equalsIgnoreCase("sim")){JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues"); }elseif(a.equalsIgnoreCase("não")){JOptionPane.showMessageDialog(null,"Entao você nao fala portugues"); }else{JOptionPane.showMessageDialog(null,"Nao entendi, repita por favor"); }
Viu ? Agora é pensar em como aplicar o do-while nesse código. E uma dica, não faça a.equals(null). Se é é null mesmo, ele vai dar NullPointerException. null é diferente de “null” (isso é uma String!).
Obrigado nel , agora estou entendendo.
LucasJavaTry
Sim , mas meu exercício pede : "Use o return " …
Obrigado
Rodrigo_Sasaki
LucasJavaTry:
Sim , mas meu exercício pede : "Use o return " …
Obrigado
E qual o problema de usar o return?
E
entanglement
Se seu problema pede “use o return”, provavelmente ele está imaginando que você queira fazer uma de duas coisas:
Ou implemente sua lógica em um método separado, que será chamado a partir do main,
ou
Saia antes do final do main, usando o return.
Não sei como é o enunciado completo do seu problema.
LucasJavaTry
Olá novamente;
Consegui arrumar usando return , agora quero colocar um numero máximo de caracteres , 3 .
Obrigado!!!
nel
LucasJavaTry:
Olá novamente;
Consegui arrumar usando return , agora quero colocar um numero máximo de caracteres , 3 .
Obrigado!!!
Eu quero ir viajar para a Europa e trabalhar por lá, uns 2 anos, tá bom já !
Vai ler o javadoc da String.