Сравнение PHP на единицу меньше

Google действительно подвел меня для этого. Я хочу сделать сравнение меньше или больше, чем, но только на 1. Таким образом, я могу определить, является ли значение B на единицу меньше или больше, чем A.

if (A is one less than B || A is one greater than B) {
 return true
}

Это то, что я хочу сделать.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
86
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Проведите стандартный тест на равенство.

Просто выполните вычитание или сложение значения, с которым вы сравниваете.

3 === (4-1)

Это неправильно. скажем, A = 3 и B = 4. op попросит проверить, меньше или больше $ B, чем A на 1. Итак, если B = 2, op хочет быть правдой, но этот алгоритм вернет false.

Muhammad Azizol Aminuddin 13.02.2019 14:24

@MuhammadAzizolAminuddin — Другая сторона || была оставлена ​​как тривиальное и очевидное упражнение для читателя.

Quentin 13.02.2019 14:25

Согласен, но лучше упомянуть, что есть вторая часть, чтобы новый программист знал, что есть другая часть.

Muhammad Azizol Aminuddin 13.02.2019 14:31

Вероятно, он должен иметь оба для завершения. Он должен определить, является ли что-либо на единицу меньше или больше значения.

Hasen 13.02.2019 15:00

@Hasen — не стесняйтесь редактировать его, если считаете, что нужно кормить с ложечки целиком, а не просто объяснять принципы. Это вики сообщества является.

Quentin 13.02.2019 15:00

В любом случае, ниже были гораздо лучшие ответы. Я уже выбрал другой.

Hasen 13.02.2019 15:04

Что-то вроде этого. Пока разница между $a и $b равна 1.

if (abs($a - $n) == 1) {...}
Ответ принят как подходящий

Если вы всегда хотите проверить, находится ли он выше или ниже, продифференцируйте их и посмотрите, равно ли абсолютное значение результата единице.

if (abs($a - $b) === 1) {
    // Do your thing
}

См. этот живая демонстрация.

Перевод вашего псевдоусловия:

(A is one less than B) or (A is one greater than B)

это становится:

if ( $A === $B-1 || $A === $B+1 ) {
  return true;
}

Не мое отрицательное мнение, но этот тернарный оператор вызывает больше путаницы, чем решает. Он также нуждается в скобках вокруг каждой подгруппы для правильной работы.

Qirel 13.02.2019 14:40

@Qirel скобки не нужны, я проверил это перед публикацией. Но я согласен, троичный код может быть более сложным для понимания, он выглядит беспорядочно.

Edgar Valfogo 13.02.2019 14:51

Другие вопросы по теме