Olá pessoal, estou estudando alguns códigos do curso e me deparei com o seguinte operador IF:
int x = 1;
if(x > 9);{
System.out.println("x é maior do que 9");
System.out.println("x é menor ou igual a 9");
}
A minha dúvida é a seguinte: "O x no caso vale 1, ou seja, não deveria imprimir nem a primeira nem a segunda opção dentro do IF, pois a condição não é verdadeira para entrar no IF, mas quando eu coloco pra executar esse programa, ele imprime as duas linhas… alguém saberia me explicar por que?
Além disso, note que o { não é necessário quando se têm apenas uma linha de código abaixo dele
Ex.: O código
int x = 1;
if (x > 9) {
System.out.println("Maior que 9");
}
else if (x <= 9) {
System.out.println("Menor ou igual a 9");
}
É equivalente à
int x = 1;
if (x > 9)
System.out.println("Maior que 9");
else if (x <= 9)
System.out.println("Menor ou igual a 9");
Não só para estruturas de decisão, mas também para de repetição, etc
Ah entendi, como o ‘;’ é um sinal que finaliza as expressões de linha, quando o operador condicional ‘if’ o recebe significa que a condição booleana de dentro do ‘if’, independente de ser verdadeira ou falsa, executará o que está posterior as chaves {}, certo?
Foi pegadinha mesmo, keapkepskeapea, apesar de estar aprendendo eu presto muita atenção aos códigos que faço… e por isso fiquei na dúvida desse ‘;’ ai no if.
Eu sei disso, mas pra mim já se tornou boa prática colocar parênteses em qualquer situação, seja decisão ou repetição…
Acho que o seu código ficaria mais enxuto desta maneira, isto porque na lógica se x não for maior que 9, com certeza ele será menor ou igual a nove.
int x = 1;
if (x > 9) {
System.out.println("Maior que 9");
} else {
System.out.println("Menor ou igual a 9");
}
Ou se preferir fazer um por um.
int x = 1;
if (x > 9) {
System.out.println("Maior que 9");
} else if (x = 9) {
System.out.println("Igual a 9");
} else {
System.out.println("Menor a 9");
}
Com certeza, assim ele não iria testar a segunda opção caso entrasse na primeira… Na realidade só queria demonstrar que o “{” pode ser ocultado em alguns casos.