Объединение условных операторов
Летняя распродажа/ Рефакторинг / Приёмы / Упрощение условных выражений
Также известен как: Consolidate Conditional Expression
Проблема
У вас есть несколько условных операторов, ведущих к одинаковому результату или действию.
Решение
Объедините все условия в одном условном операторе.
До
double disabilityAmount() {
if (seniority < 2) {
return 0;
}
if (monthsDisabled > 12) {
return 0;
}
if (isPartTime) {
return 0;
}
// Compute the disability amount.
// ...
}
После
double disabilityAmount() {
if (isNotEligibleForDisability()) {
return 0;
}
// Compute the disability amount.
// . ..
}
До
double DisabilityAmount()
{
if (seniority < 2)
{
return 0;
}
if (monthsDisabled > 12)
{
return 0;
}
if (isPartTime)
{
return 0;
}
// Compute the disability amount.
// ...
}
После
double DisabilityAmount()
{
if (IsNotEligibleForDisability())
{
return 0;
}
// Compute the disability amount.
// ...
}
До
function disabilityAmount() {
if ($this->seniority < 2) {
return 0;
}
if ($this->monthsDisabled > 12) {
return 0;
}
if ($this->isPartTime) {
return 0;
}
// compute the disability amount
...
После
function disabilityAmount() {
if ($this->isNotEligibleForDisability()) {
return 0;
}
// compute the disability amount
...
До
def disabilityAmount():
if seniority < 2:
return 0
if monthsDisabled > 12:
return 0
if isPartTime:
return 0
# Compute the disability amount.
# ...
После
def disabilityAmount():
if isNotEligibleForDisability():
return 0
# Compute the disability amount.
# ...
До
disabilityAmount(): number {
if (seniority < 2) {
return 0;
}
if (monthsDisabled > 12) {
return 0;
}
if (isPartTime) {
return 0;
}
// Compute the disability amount.
// ...
}
После
disabilityAmount(): number {
if (isNotEligibleForDisability()) {
return 0;
}
// Compute the disability amount.
// ...
}
Причины рефакторинга
Код содержит множество чередующихся операторов, которые выполняют одинаковые действия. Причина разделения операторов неочевидна.
Главная цель объединения операторов — извлечь условие оператора в отдельный метод, упростив его понимание.
Достоинства
Убирает дублирование управляющего кода. Объединение множества условных операторов, ведущих к одной цели, помогает показать, что на самом деле вы делаете только одну сложную проверку, ведущую к одному общему действию.
Объединив все операторы в одном, вы позволяете выделить это сложное условие в новый метод с названием, отражающим суть этого выражения.
Порядок рефакторинга
Перед тем как осуществлять рефакторинг, убедитесь, что в условиях операторов нет «побочных эффектов», или, другими словами, они не модифицируют что-то, а только возвращают значения. Побочные эффекты могут быть и в коде, который выполняется внутри самого оператора. Например, по результатам условия, что-то добавляется к переменной.
и
иили
. Объединение операторов обычно следует такому правилу:Вложенные условия соединяются с помощью оператора
и
.Условия, следующие друг за другом, соединяются с помощью оператора
или
.
Извлеките метод из условия оператора и назовите его так, чтобы он отражал суть проверяемого выражения.
Войти Связаться
День 4 | Условные операторы — if-else — Java новичок
by amorrisОпубликовано
Чтобы понять принцип работы условных операторов, достаточно представить сказочный камень, который стоит на распутье. Где сказано: «Направо пойдёшь – коня потеряешь, себя спасёшь; налево пойдёшь – себя потеряешь, коня спасёшь; прямо пойдёшь – и себя и коня потеряешь». Можно представить эту запись в ином виде:
ЕСЛИ (направо пойдёшь) { коня потеряешь, себя спасешь; } ИНАЧЕ ЕСЛИ (налево пойдёшь) { себя потеряешь, коня спасешь; } ИНАЧЕ ЕСЛИ (прямо пойдёшь) { и себя и коня потеряешь; }
Конструкция ЕСЛИ-ИНАЧЕ
if (условие_1) { /*выполняется эта часть кода, если первое условие истинно*/ } else if (условие_2) { /*выполняется эта часть кода, если второе условие истинно*/ } else { /*выполняется эта часть кода, если первое и второе условие ложно*/ }
В каких случаях используются условные операторы. Допустим, нам необходимо сравнить два числа между собой, например:
int a, b; if (a == b) { //Выполнится код, если a равно b } else if (a >= b) { //Выполнится код, если a больше или равно b } else if (a <= b) { //Выполнится код, если a меньше или равно b } else { //Выполнится код, если ни одно из условий //не выполняется }
При необходимости внутри каждого условия можно прописать иные условия, которые будут проверять новые выражения.
Если нам необходимо проверить несколько условий в одном операторе, возможно воспользоваться логическими операторами «И», «ИЛИ».
int a, b; if (a != b && a > b) { //Выполнится код, если и первое и второе условие //истинно } if (a < b || a == b) { //Выполнится код, если первое или второе условие //истинно }
Возможно, нам необходимо узнать чётное число или нет. Воспользуемся целочисленным делением, о котором рассказано здесь.
int a; //инициализируем переменную a if (a % 2 == 0) { /*Проверяем условие: если остаток от деления a на 2 будет 0, тогда число чётное, т.к. отсутствует остаток от деления*/ } else { //Иначе, число нечётное }
В случаях, когда условие всего одно, и дабы не нагромождать конструкцией if-else можно использовать аналог — тернарный оператор, что означает
условие ? результат_1 : результат_2
Для примера, необходимо проверить можно ли отправлять ребёнка в школу в зависимости от его возраста. Для упрощения конструкции указывать System.out.println не буду.
int childAge; //возраст ребёнка int schoolAge; //требуемый возраст в школу childAge >= schoolAge ? "Подходит" : "Слишком маленький"; /*Если возраст ребёнка больше или равно требуемого возраста в школу, тогда выводим сообщение "Подходит", иначе выводим сообщение "Слишком маленький"*/
404: Страница не найдена
Страница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы извиняемся за любые неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Узнайте последние новости.
- Наша домашняя страница содержит самую свежую информацию о Java-разработке.
Наша страница «О нас» содержит дополнительную информацию о сайте, на котором вы находитесь, TheServerSide.com.- Если вам нужно, свяжитесь с нами, мы будем рады услышать от вас.
Просмотр по категории
Архитектура приложения- Основы сертификации TOGAF и некоторые способы подготовки
TOGAF предлагает архитекторам возможность изучить принципы реализации архитектуры программного обеспечения корпоративного уровня, включая. ..
- Haskell против PureScript: разница в сложности
Haskell и PureScript предоставляют свои уникальные преимущества при разработке, так как же разработчикам выбирать между этими двумя …
- Краткое введение в стратегию архитектуры MACH
Хотя это и не является особенно предписывающим, согласование со стратегией архитектуры MACH может помочь группам разработчиков программного обеспечения обеспечить приложение …
- Платформа Postman API будет использовать Akita для укротения мошеннических конечных точек
Открытие и наблюдаемость Akita позволит использовать недокументированные API-интерфейсы в среде проектирования и тестирования Postman, чтобы довести их до …
- Как использовать методы тестирования на основе спецификаций
Методы, основанные на спецификациях, могут играть роль в эффективном тестовом покрытии. Выбор правильных методов может обеспечить тщательную …
- GitHub Copilot Chat стремится заменить Google для разработчиков
Публичная бета-версия Copilot Chat на GitHub развертывает интеграцию GPT-4, которая встраивает помощника чата в Visual Studio, но касается …
- Навигация по проблемам выставления счетов за использование нескольких облаков
Отслеживание облачных счетов из нескольких облаков или учетных записей может быть сложным. Узнайте, как идентифицировать мультиоблачный биллинг…
- 5 лучших практик оптимизации затрат Google Cloud
Стоимость всегда является главным приоритетом для предприятий. Для тех, кто рассматривает возможность использования Google Cloud, или нынешних пользователей, узнайте об этих оптимизациях …
- Как создавать моментальные снимки Amazon EBS и управлять ими через интерфейс командной строки AWS
Моментальные снимки
EBS являются важной частью любой стратегии резервного копирования и восстановления данных в развертываниях на основе EC2. Ознакомьтесь с тем, как …
- BrightTALK @ Black Hat USA 2022
Виртуальный опыт BrightTALK на Black Hat 2022 включал в себя беседы в прямом эфире с экспертами и исследователями о …
- Последние новости Black Hat USA 2023
Используйте это руководство по Black Hat USA 2023, чтобы быть в курсе последних новостей и актуальных тем, а также читать мнения экспертов по одному из …
- Ключи API: недостатки и рекомендации по безопасности
Ключи API
не заменяют безопасность API. Они предлагают только первый шаг в аутентификации — и требуют дополнительных …
- AWS Control Tower стремится упростить управление несколькими учетными записями
Многие организации изо всех сил пытаются управлять своей огромной коллекцией учетных записей AWS, но Control Tower может помочь. Услуга автоматизирует. ..
- Разбираем модель ценообразования Amazon EKS
В модели ценообразования Amazon EKS есть несколько важных переменных. Покопайтесь в цифрах, чтобы убедиться, что вы развернули службу…
- Сравните EKS и самоуправляемый Kubernetes на AWS
Пользователи
AWS сталкиваются с выбором при развертывании Kubernetes: запустить его самостоятельно на EC2 или позволить Amazon выполнить тяжелую работу с помощью EKS. См…
Ява | Условные операторы в Java | если Заявление | Оператор if-else | Вложенные if
Условные операторы
Много раз мы хотим, чтобы набор инструкций выполнялся в одной ситуации, а полностью другой набор инструкций для выполнения в другой ситуации. Такая ситуация имел дело с Java-программами, используя управление принятием решений инструкция.
В структуре принятия решений программист указывает одно или несколько условий, которые должны быть оценивается или проверяется программой на основе результата, т. е. либо 90 122 истинного 90 123, либо false , операторы выполняются.
Ниже приведено абстрактное представление оператора принятия решения..
Программирование на Java обрабатывает принятие решений, поддерживая следующие операторы: 9 Простое выражение if 141
Оператор лестничной логики if-else
Вложенный оператор if-else 901 39
Заявление о переключении
Следующая тема — Java-Loops
Онлайн-обучение в режиме реального времени
Мы проводим онлайн-обучение в реальном времени по широкому спектру технологий для работающих специалистов от Корпорации. Мы также проводим обучение для студентов из всех направлений, таких как информатика, Информационные технологии, электротехника и машиностроение, MCA, BCA.
Предлагаемые курсы:
- Программирование на C
- Программирование на С++
- Структура данных
- Ядро Java
- Питон
- Java-скрипт
- Усовершенствованная Java (J2EE)
- Спящий режим
- Пружина
- Пружинный башмак
- Наука о данных
- Юнит
- Тест Ng
- Гит
- Мейвен
- Автоматизация тестирования — Selenium
- Тестирование API
ВНИМАНИЕ: Обучение проводится в полном объеме в выходные дни и в вечернее время в течение недели, в зависимости от расписания.
Если у вас есть какие-либо требования, отправьте их по адресу prowessapps.