[RESOLVIDO] Operador IF

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?

Esse ";" depois do IF… o que significa?

Isso é uma pegadinha. O ‘;’ esta “fechando” o bloco do IF, assim, ele não esta servindo para nada.

Por isso imprime as duas linhas,será que foi pegadinha ou erro… :stuck_out_tongue:

quando você faz:

if(x > 9);

O que você está fazendo é

if (x>9) { }

Então seu código é:

int x = 1; if(x > 9) { } { System.out.println("x é maior do que 9"); System.out.println("x é menor ou igual a 9"); }

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…

Valeu! ;D

Boa noite a todos.

Pedroroxd.

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.

se vc n dissesse eu não ia perceber :?