CodeGym /Cursos /JAVA 25 SELF /Operador condicional: if else

Operador condicional: if else

JAVA 25 SELF
Nível 3 , Lição 1
Disponível

1. Operador if else

De pouco adiantaria programas fazerem sempre a mesma coisa, independentemente de como mudam as circunstâncias externas. Um programa precisa se adaptar a diferentes situações e fazer uma ação em alguns casos e outra em outros.

Em Java isso é implementado com o operador condicional — as palavras-chave if e else, que permitem executar diferentes blocos de comandos dependendo da veracidade da condição.

O operador condicional consiste em três partes: condição, comando 1 e comando 2. Se a condição for verdadeira, executa-se o comando 1; caso contrário, executa-se o comando 2. Os comandos nunca são executados simultaneamente. A forma geral desse operador é a seguinte:


if (condição)
   comando1;
else
   comando2;
Operador condicional if-else

if significa “se”, e else significa “caso contrário”. Em linguagem humana, isso pode ser escrito assim:


Se a condição for verdadeira, então
   executar comando1;
senão
   executar comando2;
Operador condicional if-else em linguagem humana

Exemplos:

// Será exibida a mensagem: Você ainda é criança

int age = 17;
if (age < 18)
   System.out.println("Você ainda é criança");
else
   System.out.println("Você já é adulto");
// Será exibida a mensagem: Está quente

int temperature = 5;
if (temperature < 0)
   System.out.println("Está muito frio lá fora");
else
   System.out.println("Está quente");
// Será exibida a mensagem: Você pode tirar a carteira de motorista

int age = 18;
if (age == 18)
   System.out.println("Você pode tirar a carteira de motorista");
else
   System.out.println("Você pode juntar dinheiro para o carro");

2. Bloco de comandos

Se, quando a condição for satisfeita (ou não), você quiser que seu programa execute vários comandos, pode agrupá-los em um bloco de comandos.

Para agrupar comandos em um bloco, “envolva-os” entre chaves. Eis como isso fica no caso geral:


{
   comando1;
   comando2;
   comando3;
}

O número de comandos em um bloco pode ser qualquer um — inclusive zero.

Exemplos de combinação do operador if-else com bloco de comandos:

// Será exibida a mensagem: Você ainda é criança. Não discuta com os adultos

int age = 17;
if (age < 18)
{
   System.out.println("Você ainda é criança");
   System.out.println("Não discuta com os adultos");
}
else
{
   System.out.println("Você já é adulto");
   System.out.println("Ah, essa juventude...");
}
// Será exibida a mensagem: Está quente

int temperature = 5;
if (temperature < 0)
{
   System.out.println("Está muito frio lá fora");
   System.out.println("Coloque um gorro");
}
else
   System.out.println("Está quente");
// Um bloco de comandos vazio será executado. Nada será impresso na tela. 

int age = 21;
if (age == 18)
   System.out.println("Você pode obter a carteira de motorista");
else
{
}

3. Sintaxe reduzida do operador if

Se o código no bloco else estiver ausente, você pode omiti-lo. Então o operador if ficará assim:


if (condição)
{
    comando1;
}
Operador condicional if

Exemplo:

int age = 19;
if (age >= 18)
{
    System.out.println("Você é maior de idade!");
}

Como isso funciona?

Se a condição for verdadeira, o bloco de código é executado. Se for falsa, nada acontece — o programa segue adiante.

O bloco else até pode existir no programa, mas estar vazio (entre as chaves não há comandos). Você pode simplesmente removê-lo: nada mudará no programa.

4. Combinando condições: else if

Às vezes é preciso verificar mais do que “sim/não” e escolher entre várias opções. Para isso, usamos a combinação else if:

if (condição1)
{
    // Executa se condição1 for verdadeira
}
else if (condição2)
{
    // Executa se condição2 for verdadeira e condição1 for falsa
}
else
{
    // Executa se nenhuma das condições acima for atendida
}

Exemplo:

int hour = 13;
if (hour < 12)
{
    System.out.println("Bom dia!");
}
else if (hour < 18)
{
    System.out.println("Boa tarde!");
}
else
{
    System.out.println("Boa noite!");
}

O que está acontecendo aqui?

  • Se for antes das 12 — é manhã.
  • Se for das 12 às 18 — é tarde.
  • Se for depois disso — é noite.
  • O programa escolhe APENAS UMA das opções! Assim que uma condição é satisfeita — as restantes nem são verificadas.

5. Ilustração esquemática: fluxograma de ramificação

Veja como isso fica em um fluxograma:

E se houver várias condições:

Isso lembra muito as bifurcações em jogos de RPG de mesa: vai para a esquerda — acontece uma coisa; para a direita — outra; em frente — mais outra!

6. Que condições podem ser verificadas?

Dentro dos parênteses após if deve haver uma expressão lógica — cujo resultado é true ou false.

Principais operadores de comparação:

Operador Significado Exemplo
==
Igual a
x == 5
!=
Diferente de
x != 10
>
Maior que
x > 0
<
Menor que
age < 18
>=
Maior ou igual a
score >= 100
<=
Menor ou igual a
count <= 50

Exemplos de condições:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

Observe: = (um sinal) — é atribuição. == (dois sinais) — é comparação. Esse é um dos erros mais comuns entre iniciantes! Se você, sem querer, escrever:

if (x = 5) // ERRO!

— o compilador irá reclamar, e com toda razão.

7. Trabalhando com strings em condições

A comparação com == em Java funciona corretamente para números inteiros. Para números de ponto flutuante, não é recomendado usar ==, e para strings não se deve usar == — para strings, use o método equals(), que compara o conteúdo das strings (e não as referências).

Falaremos mais sobre as sutilezas da comparação de strings depois. E como comparar strings corretamente — veja no exemplo abaixo:

String password = console.nextLine();
if (password.equals("qwerty"))            // chamamos o método equals() e passamos a segunda string para ele
{
    System.out.println("Você entrou!");
}

8. Particularidades e nuances:

Chaves: necessárias ou não?

Se após if ou else houver apenas um comando, as chaves podem ser omitidas:

if (age > 18)
    System.out.println("Você tem mais de 18!");

// Mas é mais seguro SEMPRE escrevê-las:
if (age > 18)
{
    System.out.println("Você tem mais de 18!");
}

Dica: escreva sempre com chaves. Isso evita muitos erros, especialmente ao expandir o código.

Erros lógicos: cuidado com as condições!

Se você escrever assim:

if (age > 18)
    System.out.println("Você tem mais de 18!");
    System.out.println("Bem-vindo!");

O compilador interpretará este código assim:

if (age > 18)
{
    System.out.println("Você tem mais de 18!");
}

System.out.println("Bem-vindo!");

A segunda linha sempre será executada — as chaves são necessárias para que ambas as linhas fiquem dentro do “ramo”.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION