Menu
Coddy logo textTech

Охранные клаузы

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 38 из 59.

Защитные клаузы — это условные операторы в начале метода, которые проверяют недопустимые условия и возвращают управление досрочно. Они помогают сделать код чище и более читаемым, обрабатывая краевые случаи в первую очередь.

Давайте посмотрим на метод без защитных клауз:

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

Тот же метод с защитными клаузами:

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

После выполнения любого из кодов с divide(10, 2) результат:

5

challenge icon

Задание

Легко

Создайте метод с именем validatePassword, который принимает один аргумент:

  1. Строку (password) для проверки

Метод должен использовать защитные условия для проверки пароля и возвращать строку-сообщение в зависимости от следующих правил:

  • Если password равен null: return "Password cannot be null"
  • Если password пустая: return "Password cannot be empty"
  • Если длина password меньше 8: return "Password must be at least 8 characters"
  • Если password содержит пробелы: return "Password cannot contain spaces"
  • Если все проверки пройдены: return "Valid password"

Шпаргалка

Охранные клаузы — это условные операторы в начале метода, которые проверяют недопустимые условия и возвращают управление досрочно, делая код чище и более читаемым.

Без охранных клауз:

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

С охранными клаузами:

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

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String validatePassword(String password) {
        // Напишите свой код здесь
    }
    
    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 iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком