Estou com uma dúvida simples sobre uma rotina que é:
[code]
import javax.swing.JOptionPane;
public class PodeOuNaoPode {
public static void main(String[] args){
String idade;
int idade1;
String identif = " ";
String senha = "s";
String negacao = "n";
idade = JOptionPane.showInputDialog("Informe sua idade");
idade1 = Integer.parseInt(idade);
if (idade1 >= 18){
JOptionPane.showMessageDialog(null,"Pode Entrar");
[b]}else if (idade1 < 18){
identif = JOptionPane.showInputDialog("Você é amigo do dono? / s ou n ");
if( identif == senha) {
JOptionPane.showMessageDialog(null, " Pode Entrar");
}else{
JOptionPane.showMessageDialog(null, "Não Pode Entrar");[/b]
}
}
}
}[/code]
Este programinha quando o usuário digita uma idade menor que 17 (a parte em negrito) ele sempre mostra a segunda opção do if, ou seja “não pode entrar”. Alguém pode tirar minha dúvida?
Não entendi muito bem sua dúvida se ele informar a idade menor que 18 entrará no segundo if
Só tome cuiado ao testar a senha
String não é um tipo primitivo e sim objeto ao testar com operador == vc esta comparando se a referencia da String a é == String b
o que vc quer testar se as String´s são equivalentes ou seja seu conteudo é o mesmo utilize o metodo equals():
String a = "A";
String b = "A";
if (a.equals(b))
System.out.println("As Strings são equivalentes");
if (a == b)
System.out.println("O objeto B nao aponta para mesma referencia de A");
b = a;
if (a == b)
System.out.println("Agora objeto B aponta para mesma referencia de A");