Atualizado: 12/07/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Estruturas Condicionais em Java

As estruturas condicionais estão entre os elementos fundamentais da maioria das linguagens de programação. Elas permitem que a execução do programa siga caminhos diferentes, dependendo de determinadas condições.

Em Java, há três formas principais de expressar lógica condicional:

  • if / else / else if
  • switch / case
  • Operador ternário

Estrutura if / else

A instrução if avalia uma condição booleana e, se o resultado for verdadeiro, executa um bloco de código específico:

int num1 = 6;
int num2 = 4;
if (num1 > num2) {
    System.out.println("O primeiro número é maior que o segundo");
}

Após a palavra-chave if, vem a condição entre parênteses. Se ela for verdadeira, o código dentro do bloco entre chaves será executado. Neste exemplo, como 6 > 4, o resultado da condição é true, e a mensagem é exibida no console.

Caso a condição não seja satisfeita, o bloco if será ignorado. Para executar uma ação alternativa quando a condição for falsa, pode-se incluir um bloco else:

int num1 = 6;
int num2 = 4;
if (num1 > num2) {
    System.out.println("O primeiro número é maior que o segundo");
} else {
    System.out.println("O primeiro número é menor que o segundo");
}

Neste caso, se num1 não for maior que num2, a mensagem do bloco else será exibida.

Entretanto, ao comparar números, é comum ter três possibilidades: maior, menor ou igual. Para lidar com condições adicionais, pode-se usar else if:

int num1 = 6;
int num2 = 8;
if (num1 > num2) {
    System.out.println("O primeiro número é maior que o segundo");
} else if (num1 < num2) {
    System.out.println("O primeiro número é menor que o segundo");
} else {
    System.out.println("Os números são iguais");
}

Também é possível combinar condições com operadores lógicos, como && (E lógico):

int num1 = 8;
int num2 = 6;
if (num1 > num2 && num1 > 7) {
    System.out.println("O primeiro número é maior que o segundo e maior que 7");
}

Nesse caso, o bloco será executado somente se ambas as condições forem verdadeiras.

Estrutura switch

A instrução switch é uma alternativa ao uso repetido de if/else if, especialmente quando se deseja comparar um valor contra múltimos casos possíveis:

int num = 8;
switch (num) {
    case 1:
        System.out.println("O número é 1");
        break;
    case 8:
        System.out.println("O número é 8");
        num++;
        break;
    case 9:
        System.out.println("O número é 9");
        break;
    default:
        System.out.println("O número não é 1, 8 ou 9");
}

O valor entre parênteses após switch é comparado sequencialmente com os valores dos blocos case. Quando ocorre uma correspondência, o bloco correspondente é executado. O uso de break evita que os blocos seguintes também sejam executados.

Se break for omitido, a execução continuará nos próximos blocos até encontrar o próximo break (ou o final do switch). Por exemplo:

int num = 8;
switch (num) {
    case 8:
        System.out.println("O número é 8");
        num++;
    case 9:
        System.out.println("O número é 9");
        break;
    default:
        System.out.println("O número não é 8 nem 9");
}

Neste caso, como num é 8, o primeiro bloco é executado, incrementando num para 9, e o segundo bloco também é executado, resultando na impressão de ambas as mensagens.

Para lidar com valores que não correspondem a nenhum dos case, pode-se definir um bloco default, que é opcional.

Também é possível agrupar múltiplos case para um mesmo resultado:

int num = 8;
switch (num) {
    case 1:
        System.out.println("O número é 1");
    case 8:
    case 9:
    case 10:
        System.out.println("O número é 8, 9 ou 10");
        break;
    default:
        System.out.println("O número não é 1, 8, 9 ou 10");
}

Aqui, os valores 8, 9 e 10 compartilham o mesmo bloco de código, o que pode ser útil para evitar repetição.

Operador ternário

O operador ternário oferece uma forma compacta de escrever expressões condicionais simples. Sua sintaxe é:

condição ? valor_se_verdadeiro : valor_se_falso;

Exemplo:

int x = 3;
int y = 2;
int z = x < y ? (x + y) : (x - y);
System.out.println(z);

Neste caso, a condição x < y é avaliada. Se for verdadeira, z receberá o resultado de x + y; caso contrário, receberá x - y. Como 3 < 2 é falso, o valor atribuído a z será 1.

📝 Exercícios

Tarefa 1

O que será exibido no console ao executar o seguinte código?

public class Program {
    public static void main(String[] args) {
        int a = 3;
        if (a > 0) {
            System.out.println("Número positivo");
        }
        System.out.println("Fim do programa");
    }
}
Resposta

A condição a > 0 é verdadeira, já que 3 é maior que 0. Portanto, a mensagem "Número positivo" será exibida. Em seguida, o programa continua e imprime "Fim do programa", pois essa linha está fora do bloco if.

Número positivo
Fim do programa

Tarefa 2

O que será exibido no console ao executar o seguinte código? Justifique sua resposta.

public class Program {
    public static void main(String[] args) {
        int a = 5;
        if (a <= 0)
            if (a == 5)
                a++;
            else
                a--;
        System.out.println(a);
    }
}
Resposta

Como a condição a <= 0 é falsa, o bloco if interno não será executado. Nenhuma alteração ocorre na variável a, que permanece com o valor original 5. O console exibirá:

5

Tarefa 3

O que será exibido no console ao executar o código abaixo? Explique o motivo.

public class Program {
    public static void main(String[] args) {
        int a = 5;
        switch (a) {
            case 4:
                a++;
            case 5:
                a++;
            case 6:
            case 7:
            case 8:
                a++;
                break;
            case 9:
                a++;
                break;
            default:
                a++;
        }
        System.out.println(a);
    }
}
Resposta

O valor inicial de a é 5. O programa entra no case 5 e executa a++, resultando em a = 6. Como não há break, a execução continua nos próximos blocos.

A seguir, o programa entra no case 6 (que compartilha o mesmo bloco com os case 7 e 8), onde a++ é executado novamente, resultando em a = 7. Em seguida, o break interrompe a execução do switch.

Portanto, o console exibirá:

7

Tarefa 4

Escreva um programa que leia dois números inteiros do usuário (com Scanner), compare-os e imprima se são iguais, ou se o primeiro é maior ou menor que o segundo. e compare os valores informados. O programa deve imprimir se os números são iguais, ou se o primeiro é maior ou menor que o segundo.

Resposta
import java.util.Scanner;

public class Program {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.print("Digite o primeiro número: ");
        int num1 = in.nextInt();

        System.out.print("Digite o segundo número: ");
        int num2 = in.nextInt();

        if (num1 > num2) {
            System.out.println("O primeiro número é maior que o segundo");
        } else if (num1 < num2) {
            System.out.println("O primeiro número é menor que o segundo");
        } else {
            System.out.println("Os dois números são iguais");
        }

        in.close();
    }
}
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com