Menu
Coddy logo textTech

Cláusulas de Guarda

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 38 de 59.

Cláusulas de guarda são instruções condicionais no início de um método que verificam condições inválidas e retornam cedo. Elas ajudam a tornar o código mais limpo e legível, lidando com casos de borda primeiro.

Vamos ver um método sem cláusulas de guarda:

public int divide(int num, int den) {
   if (den != 0) {
       if (num >= 0) {
           return num / den;
       } else {
           return -1;
       }
   } else {
       return -1;
   }
}

O mesmo método com cláusulas de guarda:

public int divide(int num, int den) {
   if (den == 0) return -1;
   if (num < 0) return -1;
   return num / den;
}

Após executar qualquer um dos códigos com divide(10, 2), o resultado é:

5

challenge icon

Desafio

Fácil

Crie um método chamado validatePassword que recebe um argumento:

  1. Uma String (password) para validar

O método deve usar cláusulas de guarda para validar a senha e retornar uma string de mensagem com base nessas regras:

  • Se password for null: retorne "Password cannot be null"
  • Se password estiver vazia: retorne "Password cannot be empty"
  • Se o comprimento de password for menor que 8: retorne "Password must be at least 8 characters"
  • Se password contiver espaços: retorne "Password cannot contain spaces"
  • Se todas as verificações passarem: retorne "Valid password"

Folha de consulta

Cláusulas de guarda são instruções condicionais no início de um método que verificam condições inválidas e retornam cedo, tornando o código mais limpo e legível.

Sem cláusulas de guarda:

public int divide(int num, int den) {
   if (den != 0) {
       if (num >= 0) {
           return num / den;
       } else {
           return -1;
       }
   } else {
       return -1;
   }
}

Com cláusulas de guarda:

public int divide(int num, int den) {
   if (den == 0) return -1;
   if (num < 0) return -1;
   return num / den;
}

Experimente você mesmo

import java.util.Scanner;

public class Main {
    public static String validatePassword(String password) {
        // Escreva seu código aqui
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String password = scanner.nextLine();
        if (password.equals("null")) {
            password = null;
        }
        System.out.println(validatePassword(password));
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo