Разное

Оператор if в java: Java. Экспресс-курс: Оператор if

Условные конструкции – оператор if | Java

Мы пишем условие, код его проверяет и выводит результат в зависимости от того, было ли выполнено поставленное условие. В Java этим занимается оператор if. Рассмотрим его подробнее.

Программирование, которое вы сейчас делаете, — это последовательное программирование, то есть код выполняется сверху вниз. Это слишком линейно, так как каждая строка кода читается, начиная с первой строки, которую вы пишете, и заканчивая последней.

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

Условные конструкции в основном относятся к оператору if в Java: если пользователю меньше 18, тогда отобразить такое-то сообщение; если пользователь старше 18 лет, отобразить такое-то сообщение.

К счастью, в Java очень легко использовать условные конструкции. Давайте с оператора if и начнем.

Выполнение кода, когда должно происходить что-то одно, а не что-то другое, настолько распространено в программировании, что было разработано выражение if. Структура оператора if в Java такова:

if ( Условие ) {
        
}

Вы начинаете со слова if (оператор if пишется в нижнем регистре) и пары круглых скобок. Затем используете пару фигурных скобок, чтобы разделить кусок кода. Этот кусок кода является кодом, который вы хотите выполнить, только если ваше условие выполнено. Само условие записывается в круглых скобках:

if(user < 18) {
            
}

Это условие говорит «ЕСЛИ пользователю меньше 18». Но вместо того, чтобы сказать «меньше», мы используем сокращенную запись левой угловой скобки (<). Если пользователю меньше 18, то мы хотим, чтобы что-то произошло, и отобразить сообщение, например:

if(user < 18) {
     //Выводим сообщение
}

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

Прежде чем мы начнем практиковаться, есть еще одна сокращенная запись — это символ >. Правая угловая скобка означает «больше чем». В наше условие if, которое выше, можно внести небольшие изменения, чтобы проверить совершеннолетних пользователей:

if(user > 18) {
     //Выводим сообщение
}

Единственное, что нового в этом коде — это символ

>. Теперь условие проверяет пользователей старше 18 лет.

Но оператор if не проверяет людей, которым ровно 18, только тех, кому больше. Если вы хотите проверить тех, кому 18 или больше, вы можете сказать «больше или равно» символами: (>), за которым следует знак равенства (=):

if(user >= 18) {
     //Выводим сообщение
}

Также вы можете проверить «меньше или равно» аналогичным образом:

if(user <= 18) {
     //Выводим сообщение
}

Приведенный выше код содержит символ меньше (<), за которым следует знак равенства.

Давайте попробуем все это в простой программе.

Запустите новый проект, нажав File > New Project в строке меню в NetBeans. Вы можете называть свой пакет и имена классов как угодно. Введите следующий код (наше имя пакета

conditionalconstructions, а класс называется OperatorIf):

Мы создали целочисленную переменную и присвоили ей значение 17. Оператор if в Java проверяет наличие «меньше 18». В таком случае сообщение в фигурных скобках должно быть распечатано.

Запустите свою программу и проверьте ее. (NetBeans имеет привычку запускать программу активного проекта в окне Projects, но не кода, который у вас отображен. Чтобы запустить код, щелкните правой кнопкой мыши в любом месте кода. В появившемся меню выберите Run File или выделите ваш проект в окне Projects.) Вы должны увидеть это в окне вывода:

Теперь измените значение пользовательской переменной с 17 на 18. Запустите программу снова. Вы должны увидеть это:

Так что Java-программа работает нормально, без сообщений об ошибках. Просто ничего не распечатывается. Причина в том, что код с сообщением находится в фигурных скобках оператора if. И оператор if в Java-коде проверяет значения меньше 18. Если условие не выполнено, Java полностью игнорирует фигурные скобки и продолжает работу.

Упражнение 1

Замените символ «меньше» символами «меньше или равно». Измените сообщение так, чтобы оно подходило, например, «пользователь меньше или равен 18». Запустите программу. Вы видите сообщение?

Упражнение 2

Измените пользовательское значение на 20. Запустите программу. Вы все еще видите сообщение?

Вы можете указать более одного оператора if в Java-коде. Попробуйте следующий код:

На этот раз у нас есть два оператора if. Первый — тестирует значения меньше или равные 18. Второй — значения больше 18. Когда код запускается для user со значением 18 или меньше, вывод будет следующим:

Изменение значения переменной user на 20 дает это:

Таким образом, только один из операторов if выведет строку на печать. И все зависит от значения пользовательской переменной.

В следующем уроке мы продолжим условные конструкции.

Прекратите использовать оператор If-else / Хабр

Вы просмотрели бесчисленные учебные пособия, использующие операторы If-else. Вы, вероятно, также читали книги по программированию, пропагандирующие использование If-else в качестве фактического метода ветвления.

Возможно, это даже ваш режим по умолчанию, чтобы использовать If-else. Но давайте покончим с этим прямо сейчас, заменив If-else объектами состояния.

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

Даже если вы слышали о шаблоне состояния, вы можете задаться вопросом, как он реализован в готовом к продакшену коде.

Для тех, кто все еще находится в неведении, вот очень краткое введение.

Вы увеличите сложность с любым новым условным требованием, реализованным с помощью If-else.

Применяя шаблон состояния, вы просто изменяете поведение объектов, используя специализированные объекты состояния вместо операторов If-else.

Прошли те дни, когда код выглядел примерно так, как показано ниже.

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

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

Кроме того, если вы думаете, что создание новых классов вместо простого использования ветвящихся операторов звучит раздражающе, подождите, пока вы не увидите это в действии. Этот способ лаконичен и элегантен.

Даже лучше, это сделает вашу кодовую базу более SOLID, за исключением буквы ”D».

«Хорошо, я поверил, что if-else — это зло, теперь покажите мне, как избежать беспорядочного ветвящегося кода»

Мы рассмотрим, как я заменяю If-else в готовом к продакшену коде. Это выдуманный пример, но подход тот же, что я использовал в кодовых базах для крупных клиентов.

Давайте создадим очень простой класс Booking, который имеет несколько состояний. Он также будет иметь два паблик метода: Accept() и Cancel().

Я нарисовал диаграмму в меру своих возможностей, которая отображает различные состояния, в которых может находиться бронирование.

Рефакторинг ветвящейся логики из нашего кода представляет собой трехэтапный процесс:

  1. Создать абстрактный класс базового состояния
  2. Реализовать каждое состояние как отдельный класс, наследующийся от базового состояния
  3. Пусть класс Booking имеет приватный или внутренний метод, который принимает класс базового состояния в качестве параметра

Реализация

Во-первых, нам нужен класс базового состояния, который унаследуют все состояния.

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

Кроме того, базовое состояние имеет ”специальный» метод EnterState(Booking booking). Он вызывается всякий раз, когда объекту бронирования присваивается новое состояние.

Во-вторых, мы создаем отдельные классы для каждого состояния, которое хотим представлять.

Обратите внимание, как каждый класс представляет состояние, описанное на красивой диаграмме выше. Кроме того, CancelledState не позволит нашему бронированию перейти в новое состояние. Этот класс очень похож по духу на шаблон нулевого объекта.

Наконец, сам класс бронирования.

Посмотрим, класс бронирования — это просто делегирование полномочий осуществления принятия и отклонения?

Это позволяет нам устранить большую часть условной логики и позволяет каждому состоянию сосредоточиться только на том, что важно для него самого — текущее состояние также имеет возможность перевести бронирование в новое состояние.

Как бороться с новыми условиями

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

Это очень просто. Вам больше не придется иметь дело с громоздким оператором if-else.

Как сохранить объект состояния в базе данных

Объект состояния не имеет значения при сохранении объекта, например, в базе данных SQL или NoSQL. Важно только знать состояние объекта и то, как оно должно быть отображено в столбце.
Вы можете сопоставить состояние с читаемым именем, перечислением или целым числом. Все, что вам удобно, пока у вас есть какой-то способ преобразовать сохраненное значение обратно в объект состояния.

Но ты все еще используешь «if»

Да, он очень важен. Особенно при использовании в качестве проверочных точек. Именно сочетание If-else является основной причиной головных болей поддержки кода.

Это же куча дополнительных классов

Действительно. Как я уже упоминал в другой статье, сложность возникает не из количества классов, которые у вас есть, а из обязанностей, которые эти классы берут на себя.

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

Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя платные онлайн-курсы SkillFactory:

  • Курс по Machine Learning (12 недель)
  • Обучение профессии Data Science с нуля (12 месяцев)
  • Профессия аналитика с любым стартовым уровнем (9 месяцев)
  • Курс «Python для веб-разработки» (9 месяцев)

Читать еще


  • Крутые Data Scientist не тратят время на статистику
  • Как стать Data Scientist без онлайн-курсов
  • Шпаргалка по сортировке для Data Science
  • Data Science для гуманитариев: что такое «data»
  • Data Scienсe на стероидах: знакомство с Decision Intelligence

Java для полных новичков — операторы if

Домашнее обучение: курс программирования на Java


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

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

Условная логика в основном относится к слову IF: ЕСЛИ пользователю меньше 18, то показать это сообщение; ЕСЛИ пользователю 18 лет или больше, отобразите это сообщение. К счастью, в Java очень легко использовать условную логику. Начнем с операторов IF.

 

Выполнение кода, когда происходит что-то одно, а не что-то другое, очень распространено в программировании то что было разработано IF Statement. Структура оператора IF в Java:

if ( Оператор ) {

}

Вы начинаете со слова ЕСЛИ (в нижнем регистре) и пары круглых скобок. Ты затем используйте пару фигурных скобок, чтобы отделить фрагмент кода. Этот кусок кода — это код, который вы хотите выполнить только в том случае, если ваше условие выполнено. само условие заключено в круглые скобки:

if ( user < 18 ) {

}

Это условие говорит «ЕСЛИ пользователю меньше 18». Но вместо того, чтобы сказать «меньше, чем» мы используем сокращенное обозначение указателя влево угловая скобка (<). ЕСЛИ пользователю меньше 18 лет, мы хотим, чтобы что-то случиться, чтобы отобразить сообщение, например:

i f ( user < 18 ) {

// СООБЩЕНИЕ ОТОБРАЖЕНИЯ

}

Если код пользователя не меньше 18, то в фигурных скобках будет код будет пропущен, и программа продолжит свой путь вниз к последнему строка кода. Все, что вы наберете между фигурными скобками, будет выполнено только ЕСЛИ условие выполнено, и это условие заключено в круглые скобки.

Прежде чем мы попробуем это, еще одно сокращенное обозначение — это символ >. правая угловая скобка означает «больше чем». Наше заявление ЕСЛИ выше можно немного подправить, чтобы проверять для пользователей больше 18:

if ( user > 18 ) {

// СООБЩЕНИЕ НА ДИСПЛЕЕ

}

Единственное новое в этом коде — символ >. Условие теперь проверяет для пользователей старше 18 лет.

Но условие не проверяется для пользователей, которым ровно 18 лет, а только для тех, кому больше чем 18. Если вы хотите проверить наличие тех, кому 18 лет и старше, вы можете сказать «больше чем или равно». Символами для этого являются знак «больше» ( > ), за которым следует знак равенства ( = ):

IF ( пользователь> = 18 ) {

// Показать сообщение

}


Вы также можете проверить наличие «меньше или равных» в аналогичном способе:

. if ( user <= 18 ) {

// СООБЩЕНИЕ ОТОБРАЖЕНИЯ

}

Приведенный выше код содержит символ «меньше» ( < ), за которым следует равенство знак.

Давайте попробуем все это в простой программе.

Запустите новый проект, нажав Файл > Новый проект в меню панель в NetBeans. Вы можете называть свои пакеты и имена классов как угодно. Введите следующий код (имя нашего пакета — условно-логический , а Класс называется IFStatements ):

Мы установили целочисленную переменную и присвоили ей значение 17. ЕСЛИ выписка проверяет на «менее 18». Итак, сообщение между кудрявыми скобки должны быть распечатаны.

Запустите вашу программу и проверьте ее. (NetBeans имеет привычку запускать программу жирным шрифтом в окне «Проекты», а не код, который вы отобразили. К запустите код в окне кодирования, щелкните правой кнопкой мыши в любом месте кода. Из В появившемся меню выберите «Выполнить файл». Вы должны увидеть это в окне вывода:

Теперь измените значение пользовательской переменной с 17 на 18. Запустите программу. снова. Вы должны увидеть это:

Итак, программа работает нормально, без сообщений об ошибках. Просто ничего распечатывается. Причина в том, что код сообщения находится между фигурные скобки оператора IF. И оператор IF проверяет для значений меньше 18. ЕСЛИ условие не выполняется, Java игнорирует фигурные скобки в целом и движется дальше.

Упражнение
Замените символ «меньше чем» на «меньше или равно». на». Измените свое сообщение, чтобы оно подходило, что-то вроде «пользователь меньше или равно 18». Запустите программу еще раз. Вы видите сообщение?


Упражнение
Измените пользовательское значение на 20. Запустите программу еще раз. сообщение?


В коде может быть несколько операторов IF. Попробуйте следующий код:

На этот раз у нас есть два оператора IF. Первые тесты для значений меньше или равным 18. Второй проверяет значения больше 18. Когда код запустить со значением 18 или меньше для пользовательской переменной, вывод будет следующим:

Изменение значения пользовательской переменной на 20 дает следующее:

Таким образом, только одно из операторов IF будет выводить строку печати. И все зависит каково значение пользовательской переменной.

сообщить об этом объявлении

В следующей части мы продолжим работу с условной логикой

<-- Панели параметров | If ... Else -->

Назад на страницу содержания Java

Java: оператор If — упражнения и решение

1. Напишите программу для нахождения максимума между двумя числами

Просмотреть решение

2. Написать программу для нахождения максимума между тремя числами

Просмотреть решение

3. Написать программу для проверки, является ли число отрицательным, положительным или равным нулю

3 Просмотреть решение 4. Напишите программу, проверяющую, делится ли число на 5 и 11

View Solution

5. Напишите программу, проверяющую, является ли число четным или нечетным

View Solution

6. Напишите программу для проверки того, является ли год високосным или нет

View Solution

7. Напишите программу для проверки того, является ли символ алфавитом или нет

View Solution

8. Напишите программу для ввода любого алфавита и проверки, является ли он гласным или согласным.0017

Просмотреть решение

10. Написать программу для проверки того, является ли символ прописным или строчным алфавитом

Просмотреть решение

11. Написать программу для ввода номера недели и вывода дня недели

80 Просмотреть решение 3

80 Просмотреть решение 3

12. Напишите программу для ввода номера месяца и печати названия месяца

Просмотреть решение

13. Напишите программу для подсчета общего количества банкнот заданной суммы

Посмотреть решение

14. Написать программу для ввода углов треугольника и проверки правильности треугольника

Посмотреть решение

15. Написать программу для ввода всех сторон треугольника и проверки правильности

Просмотреть решение

16. Написать программу для проверки равностороннего, равнобедренного или разностороннего треугольника

Просмотреть решение

17. Написать программу для нахождения всех корней квадратного уравнения

Просмотреть решение

18. Написать программу для расчета прибыли или убытка

Просмотреть решение

19. Написать программу для ввода оценок по пяти предметам: физике, химии, биологии, математике и информатике. Рассчитайте процент и класс в соответствии со следующим:

  • Процент >= 90%: Класс A
  • Процент >= 80%: класс B
  • Процент >= 70%: класс C
  • Процент >= 60%: класс D
  • Процент >= 40%: класс E
  • Процент

View Solution

20. Напишите программу для ввода базового оклада сотрудника и расчета его брутто-зарплаты в соответствии со следующим:

  • Базовый оклад
  • Основная заработная плата
  • Базовый оклад > 20000: HRA = 30%, DA = 95%

View Solution

21. Напишите программу для ввода платы за единицу электроэнергии и расчета общего счета за электроэнергию в соответствии с заданным условием:

  • Первые 50 единиц рупий. 0,50/шт.
  • На следующие 150 единиц рупий. 0,75/ед.
  • На следующие 250 единиц рупий. 1,20/шт.
  • Для единицы выше 250 рупий. 1,50/шт.
  • К счету добавляется дополнительная надбавка 20%

Посмотреть решение

22. При покупке некоторых товаров предоставляется скидка 10%, если количество купленных товаров превышает 100. Если количество и цена за единицу товара вводятся с клавиатуры, напишите программу для расчета общих расходов.

Посмотреть решение

23. С клавиатуры вводится текущий год и год поступления сотрудника в организацию. Если количество лет, в течение которых работник проработал в организации, больше 3, то премия в размере 500 000 руб. 2500р — выдается работнику. Если стаж не превышает 3 лет, то программа ничего не должна делать

Посмотреть решение

24. Если его базовая заработная плата меньше рупий. 1500, тогда HRA = 10% от базового оклада и DA = 90% от основного оклада. Если его заработная плата равна или выше рупий. 1500, тогда HRA = Rs. 500 и DA = 98% базовой заработной платы. Если зарплата сотрудника вводится с клавиатуры, напишите программу для определения его брутто-зарплаты

Просмотреть решение

25. Оценки, полученные студентом по 5 различным предметам, вводятся с клавиатуры. Ученик получает деление по следующим правилам: Напишите программу для вычисления деления, полученного учеником

  • Проценты выше или равные 60 — первый дивизион
  • Процент от 50 до 59 — Второй дивизион
  • Процент от 40 до 49 — Третий дивизион
  • Процент меньше 40 — Ошибка

View Solution

26. Компания страхует своих водителей в следующих случаях:

  • Если водитель состоит в браке
  • Если водитель не женат, мужчина старше 30 лет
  • Если водитель не состоит в браке, женщина и старше 25 лет

View Solution

27. Напишите программу для расчета заработной платы в соответствии со следующей таблицей

Пол Год службы Квалификация Зарплата
Мужчина >= 10 Последипломное образование 15000
>= 10 Выпускник 10000
< 10 Последипломное образование 10000
< 10 Выпускник 7000
Женщина >= 10 Последипломное образование 12000
>= 10 Выпускник 9000
< 10 Последипломное образование 10000
< 10 Выпускник 6000

Посмотреть решение

28. С клавиатуры вводится пятизначное число. Напишите программу для получения перевернутого числа и определения, равны ли исходное и перевернутое числа

Посмотреть решение

29. Если возраст Рама, Шьяма и Аджая вводится с клавиатуры, напишите программу для определить младшего из трех

Посмотреть решение

30. Напишите программу для проверки правильности треугольника при вводе с клавиатуры трех углов треугольника. Треугольник правильный, если сумма всех трех углов равна 180 градусам

Посмотреть решение

31. Найти абсолютное значение числа, введенного с клавиатуры

Посмотреть решение

32. Учитывая длины и ширины прямоугольника, напишите программу, которая определяет, больше ли площадь прямоугольника его периметра. Например, площадь прямоугольника с длиной = 5 и шириной = 4 больше, чем его периметр

View Solution

33. Определенная марка стали классифицируется в соответствии со следующими условиями

  1. Твердость должна быть выше 50
  2. Содержание углерода должно быть менее 0,7
  3. Прочность на растяжение должна быть больше 5600

Оценки следующие:

  • Оценка 10 при соблюдении всех трех условий
  • Оценка равна 9, если выполняются условия (i) и (ii)
  • Оценка равна 8, если выполняются условия (ii) и (iii)
  • Оценка равна 7, если выполняются условия (i) и (iii)
  • Оценка равна 6, если выполняется только одно условие
  • Оценка 5, если ни одно из условий не выполняется

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

Посмотреть решение

34. Библиотека взимает штраф за книга вернулась поздно. За первые 5 дней штраф 50 пайс, за 6-10 дней штраф 1 рупия, свыше 10 дней штраф 5 рупий. Если вы вернете книгу через 30 дней, ваше членство будет аннулировано. Напишите программу, которая принимает количество дней, в течение которых участник опаздывает с возвратом книги, и отображает штраф или соответствующее сообщение

Посмотреть решение

35. В компании эффективность труда определяется на основе времени, необходимого работнику для выполнения конкретной работы. Если время, затрачиваемое работником, составляет от 2 до 3 часов, то говорят, что работник высокоэффективен. Если время, необходимое рабочему, составляет от 3 до 4 часов, то рабочему приказано повысить скорость. Если затраченное время составляет от 4 до 5 часов, рабочий проходит обучение для улучшения своей скорости, а если время, затрачиваемое рабочим, превышает 5 часов, то работник должен покинуть компанию. Если время, затраченное рабочим, ввести с клавиатуры, найти КПД рабочего

Просмотреть решение

36.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *