cami-la/loops-e-arrays

Dúvida questão de prova

Opened this issue · 1 comments

Olá Camila tudo bem?
Tenho uma dúvida do Boot Camp da DIO, se puder me ajudar.
Tem uma questão que fala:
If((10+15)<20)
System.out.print("Verdade");
else
System.out.print("Mentira");
Nesse caso eu tenho um operador aritmético no if e ele só poderia ser executado com boolean, não?

Outra questão a alternativa correta fala que Switch não avalia expressões booleanos. Porém em uma das alternativas tem a opção de que o IF não precisa de Else. Essa não deveria ser correta também?

Oi, Rapha. Tudo bem?

Pergunta muito boa! Eu também já tive essa mesma dúvida que você. Deixa eu te explicar:

if((10+15)<20) //Se, for verdadeiro que 10 + 15 é menor que 20
System.out.print("Verdade"); //imprima 
else //se não
System.out.print("Mentira"); //imprima

Dentro do if, precisa ser um booleano sim, você está certissíma.

Mas quando passanos expressões, tipo essa (10+15)<20 faz sentido para você que o resultado é um boolean?
Essa expressão, faz a pergunta: 10 + 15 é menor do que 20? Se a resposta for true (verdadeiro) eu quero que imprima "Verdade" se false, quero que imprima "Mentira".

Agora se a expressão fosse apenas 10+15 a resposta seria 25, logo não seria um boolean e iria apresentar um erro.
Mas a expressão pergunta se (10+15) = 25 < 20. E a resposta é false, por isso que imprime "Mentira.

Deu pra entender?
Se ainda não entendeu, pode falar que eu explico de outra forma.