Охранные клаузы
Часть раздела Логика и управление потоком путешествия по 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
Задание
ЛегкоСоздайте метод с именем validatePassword, который принимает один аргумент:
- Строку (
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));
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиПовторение - 2D-массивыСложение и вычитание матрицРваные массивы3D-массивы и вышеРаспространённые паттерны 2D-массивовПовторение - всё о массивах2HashMap Часть 1
Что такое HashMap?Объявление HashMapДоступ к значениямПроверка существования ключаИзменение словарейИтоги - HashMap3HashMap. Часть 2
Методы HashMapИтерация с keySet()Итерация с entrySet()Вложенный HashMapПовторение - Управление складомПовторение - Операции HashMap6Продвинутое управление потоком
Операторы метокВыражение switchСопоставление шаблоновОхранные клаузыИтоги - управление потоком9Проект - Счетчик уникальных слов
Ввод и хранение текстаОбработка слов