Poque que nessa condição booleana se dá “pode entrar” se no if eu coloquei condição falsa se ele tiver mais de 18 anos?
publicclassFi{publicstaticvoidmain(String[]args){intidade=19;booleanamigoDoDono=true;if(idade<18&&amigoDoDono==false){System.out.println("Nao pode entrar");}else{System.out.println("Pode entrar");}}}
Apenas acho mais elegante. É apenas uma dica ok?
Forte abraço.
R
rcerullo
Só complementando:
Quando se utiliza a condição de validação E todos os critérios têm que ser válidos.
Como a sua primeira validação é da idade e ela já devolve FALSE, nem é necessário mais verificar os próximos critétios porque no geral será FALSE, caindo na condição do ELSE
rsantik
Para entrar no System.out.println(“Nao pode entrar”);
É necessário, segundo o seu código, idade ser menos que 18 e também o amigoDoDono ser igual a falso
o falso que você colocou, apenas ser para o amigoDoDono.
Master.Abs
Segue uma breve explicação sobre sa dúvida. Espero que eu tenha entendito se era essa dúvida mesmo, mas em
todo caso está ai.
publicstaticvoidmain(String[]args){intidade=19;booleanamigoDoDono=true;/* * Aqui voce está dizendo o seguinte * * Se a IDADE for < MENOR que 18 anos E AMIGO DO DONO for FALSE * Não pode entrar * Senão * Pode entrar * * Quando você faz amigoDoDono == false você está comparando * e não atribuindo false para Amigo do dono pois você definiu * amigoDoDono como true na variável. Logo ele 'pode entrar'. * Agora se a idade for 17 e amigo do dono for false irá imprimir "Não pode entrar" */if(idade<18&&amigoDoDono==false){System.out.println("Não Pode entrar");}else{System.out.println("Pode entrar");}}
M
MatheusFalcade
public class Fi {
public static void main(String[] args) {
int idade = 19;
boolean amigoDoDono = true;
if (idade < 18 && !amigoDoDono) {
System.out.println("Nao pode entrar");
}
else {
System.out.println("Pode entrar");
}
}
}
Você esta dizendo que o cara tem 19 anos, ou seja MAIOR que 18, e ele É amigo do dono…sendo assim a sua condição diz que ele PODE entrar, se vc quer que ele nao entre, vc deve mudar as variaveis para 17 anos e false, ou entao muda a própria condição
public class Fi {
public static void main(String[] args) {
int idade = 17;
boolean amigoDoDono = false;
if (idade < 18 && !amigoDoDono) {
System.out.println("Nao pode entrar");
}
else {
System.out.println("Pode entrar");
}
}
}
G
Gabriel_Lopes
(se idade < 18 ) = False
amigo do dono = False
Pela lógica proposicional:
False ^ False = false
Rodrigo_Sasaki
MatheusFalcade:
public class Fi {
public static void main(String[] args) {
int idade = 19;
boolean amigoDoDono = true;
if (idade < 18 && !amigoDoDono) {
System.out.println("Nao pode entrar");
}
else {
System.out.println("Pode entrar");
}
}
}
Você esta dizendo que o cara tem 19 anos, ou seja MAIOR que 18, e ele É amigo do dono…sendo assim a sua condição diz que ele PODE entrar, se vc quer que ele nao entre, vc deve mudar as variaveis para 17 anos e false, ou entao muda a própria condição
public class Fi {
public static void main(String[] args) {
int idade = 17;
boolean amigoDoDono = false;
if (idade < 18 && !amigoDoDono) {
System.out.println("Nao pode entrar");
}
else {
System.out.println("Pode entrar");
}
}
}
hehehe, até entendo… mas no caso do autor do tópico, ele não quer fazer o cara “entrar” ele quis entender porque com a inversão da condição foi alterado o fluxo.
Ele só ta tentando entender a lógica da condição, não o código…
M
MatheusFalcade
Entendi errado, desculpa ae haha ;D
doravan
Super Fabio:
Poque que nessa condição booleana se dá “pode entrar” se no if eu coloquei condição falsa se ele tiver mais de 18 anos?
public class Fi {
public static void main(String[] args) {
int idade = 19;
boolean amigoDoDono = true;
if (idade < 18 && amigoDoDono == false) {
System.out.println("Nao pode entrar");
}
else {
System.out.println("Pode entrar");
}
}
}
Veja, você só tem 4 condições possíveis nesse caso:
Amigo = V, MaiorDe18 = V
Amigo = F, MaiorDe18 = V
Amigo = V, MaiorDe18 = F
Amigo = F, MaiorDe18 = F
Sua única condição verificada é a 4, sendo assim todas as outras irão permitir a entrada.
No caso if (idade < 18 && amigoDoDono == false) é o mesmo que “Amigo = F e MaiorDe18 = F”.
Seu caso só iria negar a entrada se: if (idade < 18 || !amigoDoDono)
Nesse caso, somente entrariam os maiores de 18 anos que são amigos.