Boa tarde, comecei a pegar a apostila java básico da caelum para estudar e me deparei com um erro e não consigo entender o por que.
O código é
public class ifs
{
public static void main(String[] args)
{
int idade = 15;
boolean amigoDoDono = true;
if (idade < 18 && amigoDoDono == false)
{
System .out .println ("Não pode entrar");
}
else
{
System.out.println("pode entrar");
}
}
}
Ao compilar o programa, o programa está dizendo que "pode entrar", quando na verdade não seria possível a pessoa entrar, já que não é nem maior de 18 e nem amigo do dono. O que está errado?
Obrigado
ele só vai na condicao “Nao pode entrar”, se a idade for menor que 18 E amigoDoDono for igual a false
Neste caso, ele é idade < 18 (15),
intidade=15;
mas amigoDoDono = true
booleanamigoDoDono=true;
Como ele nao satisfaz as duas condicoes ele vai pro else
B
Betinho
Noss viajei aqui, tinha pensado de uma forma totalmente errada
Obrigado pela ajuda
ErickRAR
Você está dizendo que pode entrar se for menor de 18 anos E não ser amigo do dono. Assim não entrará apenas se essa condição for verdadeira, todas as outras pode, (menor de 18 e amigo do dono, como no seu caso).
Tente com menor de 18 anos OU amigo do dono, ou coloque que para entrar deve ser maior de 18 anos E migs do dono.
E
entanglement
Não tenho a apostila da Caelum, mas imagino que você
possa entrar se tiver 18 anos ou mais, ou então for amigo do dono.
Ou seja:
intidade=15;booleanamigoDoDono=true;if(idade>=18||amigoDoDono==true){
System.out.println("pode entrar");
}else{
System.out.println("Não pode entrar");
}
O contrário de || é &&. O equivalente do código acima é, se quiser inverter a condição:
intidade=15;booleanamigoDoDono=true;if(idade<18&&amigoDoDono==true){
System.out.println("Não pode entrar");
}else{
System.out.println("pode entrar");
}
Note que quando você nega A || B (ou seja, !(A || B) ), o resultado é !A && !B.
igor_ks
Legal, coloque o topico como [Resolvido]
B
Betinho
Obrigado a todos pelas respostas.
Consegui entende meu erro.