#База знаний
Узнаём про булев тип, операции сравнения, условные конструкции if-else, switch и тернарный оператор. Осмысляем instanceof. Всё подробно и с примерами.
Java-разработчик, преподаёт в Skillbox, осваивает машинное обучение.
Boolean — это тип данных, переменные которого принимают одно из значений:
-
true (истина, «да», логическая единица «1»);
-
false (ложь, «нет», логический ноль «0»).
Булевы переменные в Java создают так:
boolean a = true;
boolean b = false;
Значение типа boolean возвращают операции сравнения, логические операции и их сочетания. Выражения с ними — это по сути условные высказывания, которые могут быть правдивы или нет.
В каждой операции сравнения участвуют два операнда. А выглядит она как обычное неравенство в математике. Например: a > b.
Операция сравнения возвращает:
- значение true («истина»), если высказывание с оператором правдивое (условие выполняется),
- и false («ложь») — если высказывание с оператором ложное (условие не выполняется).
Например, мы хотим сравнить в Java значения переменных a и b. Для этого используем оператор >, который возвращает булево значение (true или false).
a > b равно true, когда значение переменной a больше значения переменной b (операнд слева от > больше правого), а иначе — false.
Пример:
int a = 4;
int b = 3;
boolean c = a > b;
System.out.println(c);
--OUTPUT> true
Оператор > сравнил операнд слева с операндом справа. Результат сравнения мы присвоили булевой переменной c.
Так как 4 > 3 (высказывание правдиво), значение переменной c после выполнения кода станет равным true.
Один оператор сравнения мы рассмотрели выше, а всего в Java их шесть:
Оператор сравненияОбозначение в JavaПример операции Результат операцииМеньше<a < btrue, если операнд слева меньше правого, иначе falseБольше>a > btrue, если операнд слева больше правого, иначе falseМеньше или равно<=a <= btrue, если операнд слева
меньше правого или они
равны, иначе falseБольше или равно>=a >= btrue, если операнд слева
больше правого или
равен ему, иначе falseРавно==a == btrue, если операнд слева
равен операнду справаНе равно!=a != btrue, если операнд слева
не равен операнду справа
Примеры:
int a = 6;
int b = 7;
boolean c = a < b;
System.out.println(c);
--OUTPUT> true
int a = 6;
int b = 7;
boolean c = a >= b;
System.out.println(c);
--OUTPUT> false
Булевы значения и условные выражения часто используются в условиях операторов ветвления, тернарного оператора и циклов.
Оператор ветвления позволяет выбрать и исполнить определённый блок кода в зависимости от срабатывания некоторого условия.
Есть два оператора ветвления (условные конструкции): if-else и switch.
Оператор if
Его синтаксис выглядит так:
if (условие) {
//код
} else {
//код
}
В круглых скобках после if указывают условное выражение (высказывание). Если оно истинно (то есть результат его вычисления равен true), то выполняется код в фигурных скобках после условия, иначе выполняется код по ветке else (если она есть).
Примеры:
if (3 > 2) {
System.out.println("Высказывание в скобках правдивое.");
}
--OUTPUT> Высказывание в скобках правдивое.
Проверяем условие в круглых скобках:
3 > 2?
Если да, то в консоль выводим: «Высказывание в скобках правдивое», иначе ничего не выводим.
Так как 3 и правда больше 2, то в консоли появилось наше сообщение.
if (3 < 2) {
System.out.println("Высказывание в скобках правдивое.");
} else {
System.out.println("Высказывание в скобках ложное.");
}
--OUTPUT> Высказывание в скобках ложное.
Печатаем «Высказывание в скобках правдивое», если результат вычислений в круглых скобках = true. В ином случае выводим: «Высказывание в скобках ложное».
Так как выражение (3 < 2) возвращает false, то и в консоли видим: «Высказывание в скобках ложное».
Допустим, мы хотим проверить некое условие, и если оно не выполнилось — проверить другое условие и так далее. Сделать это можно двумя способами.
1. Вложенный if
Синтаксис тут такой:
if (условие1) {
//действия, если условие1 выполнено;
} else {
if (условие2) {
//действия, если условие2 выполнено;
}
<…>
else {
//действия, если все предыдущие условия не выполнились;
}
Пример:
boolean expression1 = 3 < 2;
boolean expression2 = 5 > 4;
if (expression1) {
System.out.println("Первое выражение правдивое.");
} else {
if (expression2) {
System.out.println("Первое выражение ложное, а второе — правдивое.");
} else {
System.out.println("Оба выражения ложные.");
}
}
--OUTPUT> Первое выражение ложное, а второе — правдивое.
2. Конструкция else if
Каждое логическое условие записывают через комбинацию else if, после которых в круглых скобках идёт альтернативное условие. Последний вариант (если ни одно из условий не сработало) записывается через else без условия.
Синтаксически это выглядит так:
if (условие1) {
//действия, если условие1 выполнено;
}
else if (условие2) {
//действия, если условие2 выполнено;
}
else if (условие3) {
//действия, если условие3 выполнено;
}
<…>
else {
//действия, если условие последнего if тоже не выполнилось;
}
Пример:
boolean statement1 = 3 < 2;
boolean statement2 = 5 > 4;
if (statement1) {
System.out.println("Первое высказывание правдивое.");
} else if (statement2) {
System.out.println("Первое высказывание ложное, а второе — правдивое.");
} else {
System.out.println("Оба высказывания ложные.");
}
--OUTPUT> Первое высказывание ложное, а второе — правдивое.
Каждое следующее условие проверяется только в том случае, если предыдущее не выполнилось. Как только найдётся одно правдивое условие (или мы достигнем последнего else), выполнится код в фигурных скобках после этого условия, а оставшаяся цепочка условий будет пропущена.
Иногда условий else if нужно довольно много:
int dayOfWeekNum = 5;
if (dayOfWeekNum == 1) {
System.out.println("Понедельник");
} else if (dayOfWeekNum == 2) {
System.out.println("Вторник");
} else if (dayOfWeekNum == 3) {
System.out.println("Среда");
} else if (dayOfWeekNum == 4) {
System.out.println("Четверг");
} else if (dayOfWeekNum == 5) {
System.out.println("Пятница");
} else if (dayOfWeekNum == 6) {
System.out.println("Суббота");
} else if (dayOfWeekNum == 7) {
System.out.println("Воскресенье");
}
--OUTPUT> Пятница
Такой код сложно воспринимать: увеличение глубины вложенности быстро сделало его запутанным. Для таких случаев придуман оператор switch.
Он применяется, когда нужно выполнить один из нескольких блоков кода в зависимости от значения аргумента.
Выгода от switch тем очевиднее, чем больше проверок и вариантов действий нам нужно.
Например:
int dayOfWeekNum = 5;
switch (dayOfWeekNum) {
case 1:
System.out.println("Понедельник");
break;
case 2:
System.out.println("Вторник");
break;
case 3:
System.out.println("Среда");
break;
case 4:
System.out.println("Четверг");
break;
case 5:
System.out.println("Пятница");
break;
case 6:
System.out.println("Суббота");
break;
case 7:
System.out.println("Воскресенье");
break;
}
--OUTPUT> Пятница
В круглых скобках указывается аргумент для switch, а в каждом блоке case — чему этот аргумент должен равняться, чтобы выполнился код после двоеточия.
В нашем случае выполнится case 5, так как переменная dayOfWeekNum (порядок дня в неделе) равна 5.
В конце каждого блока case мы ставим break. Если этого не сделать, то выполнится также код из следующего блока case и так далее.
Например:
int dayOfWeekNum = 6;
switch (dayOfWeekNum) {
case 1:
System.out.println("Понедельник");
break;
case 2:
System.out.println("Вторник");
break;
case 3:
System.out.println("Среда");
break;
case 4:
System.out.println("Четверг");
break;
case 5:
System.out.println("Пятница");
break;
case 6:
System.out.println("Суббота");
case 7:
System.out.println("Воскресенье");
break;
}
--OUTPUT> Суббота
--OUTPUT> Воскресенье
Если для нескольких значений аргумента нужно выполнять один и тот же код, то блоки case можно объединить.
Например, для будних дней (dayOfWeekNum от 1 до 5) будем выводить, какой это по счёту рабочий день, а для уикенда — первый или второй это выходной:
int dayOfWeekNum = 3;
switch (dayOfWeekNum) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println(dayOfWeekNum + "-й рабочий день");
break;
case 6:
case 7:
System.out.println(dayOfWeekNum-5 + "-й выходной");
break;
}
--OUTPUT> 3-й рабочий день
Теперь при значении переменной dayOfWeekNum от 1 до 5 выполнится один и тот же код, и для значений 6 и 7 — тоже одинаковый.
Также можно задать действие, если ни одно из условий не сработало. Делается это с помощью ключевого слова default:
int dayOfWeekNum = 8;
switch (dayOfWeekNum) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println(dayOfWeekNum + "-й рабочий день");
break;
case 6:
case 7:
System.out.println(dayOfWeekNum-5 + "-й выходной");
break;
default:
System.out.println("Такого по счёту дня в неделе нет.");
}
--OUTPUT> Такого по счёту дня в неделе нет.
Примечание. Слово break означает выход из switch…case. Поэтому если ваш блок default стоит не последним, то тоже завершайте его словом break, иначе выполнится код из следующего case.
Есть ряд условий, которые следует выполнять:
- Тип значений в case должен соответствовать типу значения в switch.
- Не поддерживаются типы boolean, long, с плавающей запятой (double, float).
- В case должны быть указаны либо константы, либо выражения, значения которых компилятор сможет вычислить.
Например, компилятор сможет вычислить выражение (1 + 2 + 3) * 4 до запуска кода и подставит вместо него итоговое значение 24. А значение переменной или результат метода компилятор до запуска программы предсказать не может, поэтому ни переменную, ни метод подставлять в case нельзя.
- Значения в case не могут повторяться, а default у каждого switch может быть только один.
С версии 14 Java поддерживает новый синтаксис switch:
switch (value) {
case val1 -> {
//код
}
case val2 -> {
//код
}
default -> {
//код
}
}
Теперь нам не нужно писать break, а двоеточие заменено на стрелочку и фигурные скобки. Блок default по-прежнему не обязателен.
Если код блока case состоит всего из одной строки, то фигурные скобки можно не использовать:
switch (value) {
case val1 -> //код;
case val2 -> //код;
default -> //код;
}
В операторе switch прошлой версии мы задавали одно действие для нескольких значений case, располагая пустые case над case c кодом:
switch (value) {
case val1:
case val2:
//код
break;
}
В новой версии для этого хватает одного case, а связанные с ним значения разделяются запятой. Например:
string dayOfWeek = "Суббота";
switch (dayOfWeek) {
case "Понедельник", "Вторник", "Четверг" -> System.out.println("Работа.");
case "Среда" -> {
System.out.println("Зенит рабочей недели.");
System.out.println("Очень много работы.");
}
case "Пятница" -> System.out.println("Последний рабочий день перед выходными.");
case "Суббота" -> System.out.println("Ура, первый выходной! Можно и поспать.");
case "Воскресенье" -> {
System.out.println("Остался последний выходной, пора готовиться к работе.");
System.out.println("Но можно и поспать :)");
}
default -> System.out.println("Не знаю такого дня, но я бы поспал!");
}
--OUTPUT> Ура, первый выходной! Можно и поспать.
Теперь switch — уже не просто оператор ветвления, он может вернуть значение. Это делается с помощью вспомогательного оператора yield.
Пример:
string dayOfWeek = "Среда";
int dayOfWeekNum = switch (dayOfWeek) {
case "Понедельник":
yield 1;
case "Вторник":
yield 2;
case "Среда":
System.out.println("Очень сложный день");
yield 3;
case "Четверг":
yield 4;
case "Пятница":
yield 5;
case "Суббота":
yield 6;
case "Воскресенье":
yield 7;
default:
yield -1;
};
System.out.println(dayOfWeekNum);
--OUTPUT> Очень сложный день
--OUTPUT> 3
В новой версии switch, когда нам нужно лишь вернуть значение из соответствующего case (он должен быть без кода), — можно обойтись и без слова yield:
int dayOfWeekNum = switch (dayOfWeek) {
case "Понедельник" -> 1;
case "Вторник" -> 2;
case "Среда" -> {
System.out.println("");
yield 3;
}
case "Четверг" -> 4;
case "Пятница" -> 5;
case "Суббота" -> 6;
case "Воскресенье" -> 7;
default -> -1;
};
1. Фигурные скобки после if или else разрешено не ставить, если тело блока состоит всего из одной строки.
Однако всё же советую ставить скобки, так вы научитесь быть последовательными и облегчите рефакторинг кода.
2. Вот так писать не следует (внимание на условие в if):
public boolean isMoreFive(int a) {
return a > 5;
}
if (isMoreFive(3) == true) {
//код
}
Код будет работать, но сравнение boolean с boolean в условии — это лишняя операция.
Поскольку метод isMoreFive сам возвращает булево значение — напишите вот так:
if (isMoreFive(3)) {
//код
}
Здесь снова ненужное сравнение:
if (isMoreFive(3) == false) {
//код
}
Чтобы не было лишней операции — пишите вот так:
if (!isMoreFive(3)) {
//код
}
Условие по-прежнему выполняется, когда isMoreFive возвращает false, однако от бессмысленного сравнения мы избавились.
Тернарный оператор — это лаконичная замена if-else. Он возвращает вместо себя одно из выражений в зависимости от истинности условия (логического высказывания).
Синтаксис тернарного оператора:
условие ? выражение1 : выражение2
Если условие выполняется, то оператор возвращает выражение1, иначе — выражение2. Значения возвращаемых выражений могут быть любого типа.
Примеры:
String str = 3 > 2 ? "Условие выполняется" : "Условие не выполняется";
System.out.println(str);
--OUTPUT> Условие выполняется
Как записать то же самое с if:
String str;
if (3 > 2) {
str = "Условие выполняется";
} else {
str = "Условие не выполняется";
}
System.out.println(str);
--OUTPUT> Условие выполняется
Как видно, вариант с тернарным оператором намного короче.
Тернарные операторы допустимо вкладывать друг в друга:
String str = 3 > 2 ? (5 < 4 ? "Оба условия выполняются" : "Второе условие не выполняется") : "Первое условие не выполняется";
System.out.println(str);
--OUTPUT> Второе условие не выполняется
И то же самое с помощью if:
String str;
if (3 > 2) {
if (5 < 4) {
str = "Оба условия выполняются";
} else {
str = "Второе условие не выполняется";
}
} else {
str = "Первое условие не выполняется";
}
System.out.println(str);
--OUTPUT> Второе условие не выполняется
Конечно, так длиннее — но и читабельнее.
Есть ещё один оператор, который возвращает булево значение, — это instanceof.
Он проверяет принадлежность переменной к какому-то классу.
Если классы объектов нужно узнать во время выполнения программы.
Допустим, есть два потока исполнения. В первом создаются объекты разных классов, а в другом они используются. С instanceof легко выяснять класс каждого объекта, который получает второй поток.
Класс объекта важно знать и для приведения типов. Хотя большинство подобных проблем выявляет компилятор, но приведение типов при иерархии классов чревато ошибками, которые всплывают только во время работы.
Вообще, instanceof используется редко, потому что обычно типы объектов известны сразу. Применять этот оператор считается дурным тоном, это признак плохой программной архитектуры. Но его используют в обобщённых процедурах, которые оперируют объектами из сложной иерархии классов.
Рассмотрим на примере:
class A {}
class B extends A {}
class C {}
A a = new A(); //объект относится только к классу A
B ba = new B(); //объект относится к классам A и B
C c = new C(); //объект относится только к классу C
System.out.println(a instanceof A);
System.out.println(bа instanceof A);
System.out.println(ba instanceof B);
System.out.println(a instanceof B);
System.out.println((Object) c instanceof A);
System.out.println(c instanceof C);
--OUTPUT> true
--OUTPUT> true
--OUTPUT> true
--OUTPUT> false
--OUTPUT> false
--OUTPUT> true
Объект c принадлежит только к классу C. Нам пришлось привести его к классу Object, чтобы можно было проверить на соответствие классу A.
Иначе компилятор сразу бы увидел, что объект класса C не принадлежит к классу A, — и не дал бы запустить программу с ошибкой несовместимости типов:
class A {}
class C {}
A a = new A(); //объект принадлежит только классу A
C c = new C(); //объект принадлежит только классу C
System.out.println(c instanceof A);
--OUTPUT> <...> error: incompatible types: C cannot be converted to A <...>
Раньше был допустим только такой синтаксис:
if (object instanceof Type) {
Type t = (Type) object;
//код
}
То есть мы сначала проверяем, что object может быть приведён к какому-то типу Type, — это и делает оператор instanceof, а внутри условия приводим объект к этому типу и записываем результат в новую переменную.
В Java 15 появилась конструкция упрощённого приведения:
if (object instanceof Type t) {
//код
}
Мы проверили, что object можно привести к Type, и сразу в условии привели его к этому типу, а результат записали в переменную t. Эту переменную можно использовать внутри блока if.
Сперва подытожим:
- мы познакомились с типом Boolean;
- рассмотрели операторы сравнения <, >, <=, >=, ==, !=, а также instanceof;
- изучили операторы ветвления if, switch и тернарный оператор.
Пора рассмотреть условные выражения, включающие не только операторы сравнения, но и логические операторы.
Курс с трудоустройством: «Профессия Java-разработчик + ИИ»
Узнать о курсе
<!DOCTYPE html>
<html class="l-html" lang="ru">
<head>
<script>
mindbox = window.mindbox || function() { mindbox.queue.push(arguments); };
mindbox.queue = mindbox.queue || [];
mindbox('create', {
endpointId: 'skillbox.skillboxMediaWebsite'
});
</script>
<script src="https://api.s.mindbox.ru/scripts/v1/tracker.js" async></script>
<script>window.yaContextCb = window.yaContextCb || []</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<!-- Google Tag Manager -->
<script async data-skip-moving="true" type="text/javascript">
/** Google Tagmanager */
;(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start':
new Date().getTime(), event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-NLCGQ25');
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'GTM-NLCGQ25');
</script>
<!-- End Google Tag Manager -->
<!-- Retail Rocket -->
<script type="text/javascript">
var rrPartnerId = "6048a0d097a52514f050731f";
var rrApi = {};
var rrApiOnReady = rrApiOnReady || [];
rrApi.addToBasket = rrApi.order = rrApi.categoryView = rrApi.view =
rrApi.recomMouseDown = rrApi.recomAddToCart = function() {};
(function(d) {
var ref = d.getElementsByTagName('script')[0];
var apiJs, apiJsId = 'rrApi-jssdk';
if (d.getElementById(apiJsId)) return;
apiJs = d.createElement('script');
apiJs.id = apiJsId;
apiJs.async = true;
apiJs.src = "//cdn.retailrocket.ru/content/javascript/tracking.js";
ref.parentNode.insertBefore(apiJs, ref);
}(document));
</script>
<!-- End Retail Rocket -->
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="X-UA-Compatible" content="ie=edge"/>
<meta name="google-site-verification" content="UA-kf725UpqwkHenFmDQ05SW115fL9UdD9uXiFy-ibQ"/>
<meta name="robots" content="index, follow"/>
<link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="shortcut icon" href="/favicon.ico">
<link rel="canonical" href="https://skillbox.ru/media/base/tip_boolean_i_operatory_sravneniya_v_java/">
<link rel="preload" href="https://marketplace.canva.com/EAD2962NKnQ/2/0/1600w/canva-rainbow-gradient-pink-and-purple-zoom-virtual-background-_Tcjok-d9b4.jpg" as="image" />
<link rel="preload" href="https://via.placeholder.com/1170x250/92c952" as="image" />
<link rel="preload" href="https://via.placeholder.com/768x250/40E0D0" as="image" />
<link rel="preload" href="https://via.placeholder.com/375x250/ffbcee" as="image" />
<title>Изучаем операторы сравнения &lt;, &gt;, &lt;=, &gt;=, ==, !=, instanceof. Условные конструкции if-else, switch, тернарный оператор. Всё закрепляем на примерах. / Skillbox Media</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="description" content="Узнаём про булев тип, операции сравнения, условные конструкции if-else, switch и тернарный оператор. Осмысляем instanceof. Всё подробно и с примерами." />
<link href="/bitrix/cache/css/s1/media/kernel_main/kernel_main_v1.css?177096852510536" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/ui/fonts/opensans/ui.font.opensans.css?16341171742599" type="text/css" rel="stylesheet" />
<link href="/bitrix/js/main/popup/dist/main.popup.bundle.css?163411696226345" type="text/css" rel="stylesheet" />
<link href="//cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/css/swiper.min.css" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/page_a1ad23d5ae1fea4c6ac7c690c80a4763/page_a1ad23d5ae1fea4c6ac7c690c80a4763_v1.css?1771490810746236" type="text/css" rel="stylesheet" />
<link href="/bitrix/cache/css/s1/media/template_176a7c2453ad8025fa7d27f65ba6a4b1/template_176a7c2453ad8025fa7d27f65ba6a4b1_v1.css?1771490810442835" type="text/css" data-template-style="true" rel="stylesheet" />
<script type="text/javascript">if(!window.BX)window.BX={};if(!window.BX.message)window.BX.message=function(mess){if(typeof mess==='object'){for(let i in mess) {BX.message[i]=mess[i];} return true;}};</script>
<script type="text/javascript">(window.BX||top.BX).message({'JS_CORE_LOADING':'Загрузка...','JS_CORE_NO_DATA':'- Нет данных -','JS_CORE_WINDOW_CLOSE':'Закрыть','JS_CORE_WINDOW_EXPAND':'Развернуть','JS_CORE_WINDOW_NARROW':'Свернуть в окно','JS_CORE_WINDOW_SAVE':'Сохранить','JS_CORE_WINDOW_CANCEL':'Отменить','JS_CORE_WINDOW_CONTINUE':'Продолжить','JS_CORE_H':'ч','JS_CORE_M':'м','JS_CORE_S':'с','JSADM_AI_HIDE_EXTRA':'Скрыть лишние','JSADM_AI_ALL_NOTIF':'Показать все','JSADM_AUTH_REQ':'Требуется авторизация!','JS_CORE_WINDOW_AUTH':'Войти','JS_CORE_IMAGE_FULL':'Полный размер'});</script>
<script type="text/javascript" src="/bitrix/js/main/core/core.js?1634117028565340"></script>
<script>BX.setJSList(['/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/core/core_promise.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/loadext/loadext.js','/bitrix/js/main/loadext/extension.js','/bitrix/js/main/polyfill/promise/js/promise.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/includes/js/includes.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/ui/polyfill/closest/js/closest.js','/bitrix/js/main/polyfill/fill/main.polyfill.fill.js','/bitrix/js/main/polyfill/find/js/find.js','/bitrix/js/main/polyfill/matches/js/matches.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/core/core.js','/bitrix/js/main/polyfill/intersectionobserver/js/intersectionobserver.js','/bitrix/js/main/lazyload/dist/lazyload.bundle.js','/bitrix/js/main/polyfill/core/dist/polyfill.bundle.js','/bitrix/js/main/parambag/dist/parambag.bundle.js']);
BX.setCSSList(['/bitrix/js/main/lazyload/dist/lazyload.bundle.css','/bitrix/js/main/parambag/dist/parambag.bundle.css']);</script>
<script type="text/javascript">(window.BX||top.BX).message({'AMPM_MODE':false});(window.BX||top.BX).message({'MONTH_1':'Январь','MONTH_2':'Февраль','MONTH_3':'Март','MONTH_4':'Апрель','MONTH_5':'Май','MONTH_6':'Июнь','MONTH_7':'Июль','MONTH_8':'Август','MONTH_9':'Сентябрь','MONTH_10':'Октябрь','MONTH_11':'Ноябрь','MONTH_12':'Декабрь','MONTH_1_S':'января','MONTH_2_S':'февраля','MONTH_3_S':'марта','MONTH_4_S':'апреля','MONTH_5_S':'мая','MONTH_6_S':'июня','MONTH_7_S':'июля','MONTH_8_S':'августа','MONTH_9_S':'сентября','MONTH_10_S':'октября','MONTH_11_S':'ноября','MONTH_12_S':'декабря','MON_1':'янв','MON_2':'фев','MON_3':'мар','MON_4':'апр','MON_5':'май','MON_6':'июн','MON_7':'июл','MON_8':'авг','MON_9':'сен','MON_10':'окт','MON_11':'ноя','MON_12':'дек','DAY_OF_WEEK_0':'Воскресенье','DAY_OF_WEEK_1':'Понедельник','DAY_OF_WEEK_2':'Вторник','DAY_OF_WEEK_3':'Среда','DAY_OF_WEEK_4':'Четверг','DAY_OF_WEEK_5':'Пятница','DAY_OF_WEEK_6':'Суббота','DOW_0':'Вс','DOW_1':'Пн','DOW_2':'Вт','DOW_3':'Ср','DOW_4':'Чт','DOW_5':'Пт','DOW_6':'Сб','FD_SECOND_AGO_0':'#VALUE# секунд назад','FD_SECOND_AGO_1':'#VALUE# секунду назад','FD_SECOND_AGO_10_20':'#VALUE# секунд назад','FD_SECOND_AGO_MOD_1':'#VALUE# секунду назад','FD_SECOND_AGO_MOD_2_4':'#VALUE# секунды назад','FD_SECOND_AGO_MOD_OTHER':'#VALUE# секунд назад','FD_SECOND_DIFF_0':'#VALUE# секунд','FD_SECOND_DIFF_1':'#VALUE# секунда','FD_SECOND_DIFF_10_20':'#VALUE# секунд','FD_SECOND_DIFF_MOD_1':'#VALUE# секунда','FD_SECOND_DIFF_MOD_2_4':'#VALUE# секунды','FD_SECOND_DIFF_MOD_OTHER':'#VALUE# секунд','FD_SECOND_SHORT':'#VALUE#с','FD_MINUTE_AGO_0':'#VALUE# минут назад','FD_MINUTE_AGO_1':'#VALUE# минуту назад','FD_MINUTE_AGO_10_20':'#VALUE# минут назад','FD_MINUTE_AGO_MOD_1':'#VALUE# минуту назад','FD_MINUTE_AGO_MOD_2_4':'#VALUE# минуты назад','FD_MINUTE_AGO_MOD_OTHER':'#VALUE# минут назад','FD_MINUTE_DIFF_0':'#VALUE# минут','FD_MINUTE_DIFF_1':'#VALUE# минута','FD_MINUTE_DIFF_10_20':'#VALUE# минут','FD_MINUTE_DIFF_MOD_1':'#VALUE# минута','FD_MINUTE_DIFF_MOD_2_4':'#VALUE# минуты','FD_MINUTE_DIFF_MOD_OTHER':'#VALUE# минут','FD_MINUTE_0':'#VALUE# минут','FD_MINUTE_1':'#VALUE# минуту','FD_MINUTE_10_20':'#VALUE# минут','FD_MINUTE_MOD_1':'#VALUE# минуту','FD_MINUTE_MOD_2_4':'#VALUE# минуты','FD_MINUTE_MOD_OTHER':'#VALUE# минут','FD_MINUTE_SHORT':'#VALUE#мин','FD_HOUR_AGO_0':'#VALUE# часов назад','FD_HOUR_AGO_1':'#VALUE# час назад','FD_HOUR_AGO_10_20':'#VALUE# часов назад','FD_HOUR_AGO_MOD_1':'#VALUE# час назад','FD_HOUR_AGO_MOD_2_4':'#VALUE# часа назад','FD_HOUR_AGO_MOD_OTHER':'#VALUE# часов назад','FD_HOUR_DIFF_0':'#VALUE# часов','FD_HOUR_DIFF_1':'#VALUE# час','FD_HOUR_DIFF_10_20':'#VALUE# часов','FD_HOUR_DIFF_MOD_1':'#VALUE# час','FD_HOUR_DIFF_MOD_2_4':'#VALUE# часа','FD_HOUR_DIFF_MOD_OTHER':'#VALUE# часов','FD_HOUR_SHORT':'#VALUE#ч','FD_YESTERDAY':'вчера','FD_TODAY':'сегодня','FD_TOMORROW':'завтра','FD_DAY_AGO_0':'#VALUE# дней назад','FD_DAY_AGO_1':'#VALUE# день назад','FD_DAY_AGO_10_20':'#VALUE# дней назад','FD_DAY_AGO_MOD_1':'#VALUE# день назад','FD_DAY_AGO_MOD_2_4':'#VALUE# дня назад','FD_DAY_AGO_MOD_OTHER':'#VALUE# дней назад','FD_DAY_DIFF_0':'#VALUE# дней','FD_DAY_DIFF_1':'#VALUE# день','FD_DAY_DIFF_10_20':'#VALUE# дней','FD_DAY_DIFF_MOD_1':'#VALUE# день','FD_DAY_DIFF_MOD_2_4':'#VALUE# дня','FD_DAY_DIFF_MOD_OTHER':'#VALUE# дней','FD_DAY_AT_TIME':'#DAY# в #TIME#','FD_DAY_SHORT':'#VALUE#д','FD_MONTH_AGO_0':'#VALUE# месяцев назад','FD_MONTH_AGO_1':'#VALUE# месяц назад','FD_MONTH_AGO_10_20':'#VALUE# месяцев назад','FD_MONTH_AGO_MOD_1':'#VALUE# месяц назад','FD_MONTH_AGO_MOD_2_4':'#VALUE# месяца назад','FD_MONTH_AGO_MOD_OTHER':'#VALUE# месяцев назад','FD_MONTH_DIFF_0':'#VALUE# месяцев','FD_MONTH_DIFF_1':'#VALUE# месяц','FD_MONTH_DIFF_10_20':'#VALUE# месяцев','FD_MONTH_DIFF_MOD_1':'#VALUE# месяц','FD_MONTH_DIFF_MOD_2_4':'#VALUE# месяца','FD_MONTH_DIFF_MOD_OTHER':'#VALUE# месяцев','FD_MONTH_SHORT':'#VALUE#мес','FD_YEARS_AGO_0':'#VALUE# лет назад','FD_YEARS_AGO_1':'#VALUE# год назад','FD_YEARS_AGO_10_20':'#VALUE# лет назад','FD_YEARS_AGO_MOD_1':'#VALUE# год назад','FD_YEARS_AGO_MOD_2_4':'#VALUE# года назад','FD_YEARS_AGO_MOD_OTHER':'#VALUE# лет назад','FD_YEARS_DIFF_0':'#VALUE# лет','FD_YEARS_DIFF_1':'#VALUE# год','FD_YEARS_DIFF_10_20':'#VALUE# лет','FD_YEARS_DIFF_MOD_1':'#VALUE# год','FD_YEARS_DIFF_MOD_2_4':'#VALUE# года','FD_YEARS_DIFF_MOD_OTHER':'#VALUE# лет','FD_YEARS_SHORT_0':'#VALUE#л','FD_YEARS_SHORT_1':'#VALUE#г','FD_YEARS_SHORT_10_20':'#VALUE#л','FD_YEARS_SHORT_MOD_1':'#VALUE#г','FD_YEARS_SHORT_MOD_2_4':'#VALUE#г','FD_YEARS_SHORT_MOD_OTHER':'#VALUE#л','CAL_BUTTON':'Выбрать','CAL_TIME_SET':'Установить время','CAL_TIME':'Время','FD_LAST_SEEN_TOMORROW':'завтра в #TIME#','FD_LAST_SEEN_NOW':'только что','FD_LAST_SEEN_TODAY':'сегодня в #TIME#','FD_LAST_SEEN_YESTERDAY':'вчера в #TIME#','FD_LAST_SEEN_MORE_YEAR':'более года назад'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'WEEK_START':'1'});</script>
<script type="text/javascript">(window.BX||top.BX).message({'LANGUAGE_ID':'ru','FORMAT_DATE':'DD.MM.YYYY','FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS','COOKIE_PREFIX':'BITRIX_SM','SERVER_TZ_OFFSET':'10800','UTF_MODE':'Y','SITE_ID':'s1','SITE_DIR':'/','USER_ID':'','SERVER_TIME':'1771716390','USER_TZ_OFFSET':'0','USER_TZ_AUTO':'Y','bitrix_sessid':'696854acddf1fab52bba4daa2cd19fcd'});</script>
<script type="text/javascript" src="/bitrix/js/main/date/main.date.js?159955296434530"></script>
<script type="text/javascript" src="/bitrix/js/main/popup/dist/main.popup.bundle.js?1634116962109107"></script>
<script type="text/javascript" src="/bitrix/js/main/core/core_date.js?163411653136080"></script>
<script type="text/javascript" src="/bitrix/js/ui/vue/vue2/prod/dist/vue.bundle.js?1635848017173206"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.1/js/swiper.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
<script type="text/javascript">BX.setCSSList(['/bitrix/js/main/core/css/core_date.css','/setka/css/setka_skillbox.css','/local/templates/.default/components/bitrix/news.detail/article/style.css','/static/css/newarticle.css','/local/templates/media/libs/jquery.formstyler.css','/local/templates/media/fonts/graphik-font/stylesheet.css','/static/css/main.css','/local/templates/media/template_styles.css']);</script>
<script src="https://cdn.skillbox.pro/frontend-libs/promo-banner/5.10.1/banner-plugin.min.js"></script>
<script type="text/javascript" async src="https://relap.io/api/v6/head.js?token=sI73Ph6a5BnkqK2o"></script>
<meta property="og:title" content="Тип Boolean и операторы сравнения в Java" />
<meta property="og:description" content="Узнаём про булев тип, операции сравнения, условные конструкции if-else, switch и тернарный оператор. Осмысляем instanceof. Всё подробно и с примерами." />
<meta property="og:url" content="https://skillbox.ru/media/base/tip_boolean_i_operatory_sravneniya_v_java/" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="skillbox.ru" />
<meta property="og:locale" content="ru_RU" />
<meta property="og:image" content="/upload/iblock/de8/r7odn4hu7ag3k6su0b2bfurml140opde.jpg" />
<meta name="relap-image" content="/upload/iblock/de8/r7odn4hu7ag3k6su0b2bfurml140opde.jpg" />
<meta property="og:image:width" content="600" />
<meta property="og:image:height" content="315" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:image" content="/upload/iblock/de8/r7odn4hu7ag3k6su0b2bfurml140opde.jpg" />
<meta property="vk:image" content="/upload/iblock/b4e/5i37fwha5fn2wsl78pp0bld3h1u9p4am.jpg" />
<meta property="article:author" content="Артём Авдеев" />
<meta property="article:tag" content="База знаний" />
<meta property="article:section" content="Код" />
<script type="text/javascript" src="/static/js/vendor.js?1771489421543641"></script>
<script type="text/javascript" src="/local/assets/js/common.js?177148933727419"></script>
<script type="text/javascript" src="/static/js/main.js?1771489421125222"></script>
<script type="text/javascript" src="/local/templates/media/js/main.js?17714893372418"></script>
<script type="text/javascript" src="/local/components/prmedia/popup.subscribe/templates/.default/script.js?17714893376820"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/infinity.js?177148933713735"></script>
<script type="text/javascript" src="/setka/js/setka_skillbox.js?1771489337106775"></script>
<script type="text/javascript" src="/local/templates/.default/components/bitrix/news.detail/article/script.js?17714893377503"></script>
<script type="text/javascript">var _ba = _ba || []; _ba.push(["aid", "84a6082a990bbac8858fb733b97bed30"]); _ba.push(["host", "skillbox.ru"]); (function() {var ba = document.createElement("script"); ba.type = "text/javascript"; ba.async = true;ba.src = (document.location.protocol == "https:" ? "https://" : "http://") + "bitrix.info/ba.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ba, s);})();</script>
</head>
<body>
<div class="js-sticky-delimiter"></div>
<div class="bx-panel"></div>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLCGQ25" height="0" width="0"
style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) -->
<svg class="app-svg-visually-hidden" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<path id="def-arrow-down-a" d="M223 20813l4 5 4-5z"/>
<path id="def-arrow-a" d="M1044.6 803.2a.81.81 0 01-.5.18.8.8 0 01-.8-.8v-3.24c-2.97.1-5.17.88-6.52 2.3a4.86 4.86 0 00-1.39 3.29.8.8 0 01-.75.83h-.04a.79.79 0 01-.79-.74c-.22-3.78.69-6.76 2.69-8.84a10.76 10.76 0 016.81-3.07v-3.3a.8.8 0 011.29-.63l7.91 6.39a.8.8 0 010 1.25zm.3-11.73v2.42a.5.5 0 01-.03.1.8.8 0 01-.05.21.78.78 0 01-.47.42.67.67 0 01-.25.05h-.01c-.06 0-3.93-.04-6.46 2.62-.8.85-1.4 1.87-1.74 2.99 1.79-1.7 4.55-2.57 8.21-2.57.44 0 .8.36.8.8v2.4l5.85-4.72z"/>
<path id="def-be-a" d="M55.6 29.58h6.12v-1.59H55.6zm.64 5.74s.26-2.23 2.58-2.23c2.32 0 2.26 2.23 2.26 2.23zm-3.23 1.27S52.56 42 58.72 42c0 0 5.26.37 5.26-3.81H61.4s-.09 1.59-2.58 1.59c0 0-2.58.17-2.58-2.55l7.74-.01c-.08-.32.9-6.42-5.16-6.36-5.77.05-5.81 5.73-5.81 5.73zm-10.34 2.8v-4.24H47s1.7.16 1.7 2.24c0 1.76-1.06 1.99-1.7 2zM47 29.61s1.16.06 1.16 1.62-.76 1.64-1.49 1.64h-4v-3.26zm4.33 1.3c0-2.68-1.81-3.91-4.26-3.91H39v15.01h8.07s4.92.15 4.92-4.43c0 0 .22-3.73-2.9-3.73 0 0 2.24-.25 2.24-2.94z"/>
<path id="def-briefcase-a" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/>
<path id="def-comments-a" d="M752 8958l-4 4v-12a1 1 0 011-1h11a1 1 0 011 1v7a1 1 0 01-1 1zm12-6v13l-3.2-4H751l2-2h9v-8h1c1 0 1 .45 1 1z"/>
<path id="def-eaye-a" d="M630 8956.22c0 1.04-3.58 5.21-8 5.21s-8-4.26-8-5.21c0-1.05 3.58-5.22 8-5.22s8 4.17 8 5.22zm-5 0h-3v-3.13a3.13 3.13 0 100 6.26 3.07 3.07 0 003-3.13z"/>
<path id="def-file-a" d="M493 9457a2 2 0 01-1.98-2v-16a2 2 0 011.98-2h19.82c1.13 0 2.07.87 2.15 2v16a2.15 2.15 0 01-2.15 2zm0-18v8.83l5.3-4.59a.98.98 0 011.35.05l5.34 5.39 3.27-2.48a.98.98 0 011.36.16l3.35 4.07V9439zm19.97 14.55l-4.27-5.18-3.21 2.43c-.4.3-.95.26-1.3-.09l-5.3-5.35-5.9 5.1v4.54h19.98zm-6.1-10.55a1.98 1.98 0 113.97.04 1.98 1.98 0 01-3.97-.04z"/>
<path id="def-gplus-a" d="M466 10169a4 4 0 013.87-3.99 4.14 4.14 0 012.93.99c-.33.36-.67.71-1.03 1.04-.72-.42-1.58-.75-2.41-.46a2.52 2.52 0 00-1.67 3.23c.41 1.35 2.09 2.1 3.4 1.52a2.22 2.22 0 001.33-1.51c-.78-.01-1.56 0-2.34-.03v-1.36h3.9a4.45 4.45 0 01-.83 3.2c-1 1.28-2.88 1.66-4.4 1.16a4 4 0 01-2.75-3.79z"/><path id="def-gplus-b" d="M476.34 10166h1.32l.01 1.33H479v1.33l-1.33.01v1.33h-1.33l-.01-1.33H475v-1.33l1.33-.01.01-1.33z"/>
<path id="def-inst-a" d="M1480.93 332c-3.5 0-3.95.02-5.32.07-1.37.07-2.3.28-3.14.6-.84.34-1.57.77-2.28 1.5a6.36 6.36 0 00-1.5 2.28 9.84 9.84 0 00-.6 3.14c-.07 1.37-.07 1.82-.07 5.32s.02 3.96.07 5.32c.07 1.37.28 2.31.6 3.14.34.85.77 1.58 1.5 2.29a6.51 6.51 0 002.28 1.5c.82.3 1.77.53 3.14.6 1.37.07 1.82.07 5.32.07s3.96-.02 5.32-.07a9.48 9.48 0 003.14-.6 6.14 6.14 0 002.29-1.5 6.36 6.36 0 001.5-2.29c.3-.81.53-1.77.6-3.14.07-1.36.07-1.82.07-5.32s-.02-3.95-.07-5.32a9.48 9.48 0 00-.6-3.14 6.14 6.14 0 00-1.5-2.28 6.36 6.36 0 00-2.29-1.5 9.84 9.84 0 00-3.14-.6c-1.38-.05-1.82-.07-5.32-.07zm0 2.32c3.45 0 3.85.02 5.22.07 1.27.05 1.94.26 2.4.45.6.25 1.03.52 1.48.97.45.45.73.89.97 1.5.18.44.39 1.14.45 2.39.07 1.37.07 1.76.07 5.21s-.01 3.85-.07 5.22a6.55 6.55 0 01-.45 2.4c-.24.6-.52 1.03-.97 1.48-.45.45-.88.73-1.49.97-.45.18-1.14.39-2.39.45-1.37.07-1.77.07-5.22.07-3.45 0-3.84-.01-5.21-.07a6.55 6.55 0 01-2.4-.45 4.11 4.11 0 01-1.49-.97 4.11 4.11 0 01-.97-1.49 7.52 7.52 0 01-.45-2.39c-.07-1.37-.07-1.77-.07-5.22 0-3.45.02-3.84.07-5.21.05-1.27.26-1.95.45-2.4.25-.6.52-1.04.97-1.49.45-.45.89-.72 1.5-.97a7.52 7.52 0 012.39-.45c1.35-.05 1.76-.07 5.21-.07z"/><path id="def-inst-b" d="M1480.93 349.2a4.3 4.3 0 110-8.59 4.3 4.3 0 010 8.6zm0-10.93a6.62 6.62 0 100 13.24 6.62 6.62 0 000-13.24z"/><path id="def-inst-c" d="M1486.27 338.01a1.54 1.54 0 113.09 0 1.54 1.54 0 01-3.09 0z"/>
<path id="def-like-down-a" d="M1004.33 543.66c-1.1 0-2.45-.86-2.61-3.31-.05-1.41.11-2.82.48-4.19h-2.96c-2.15 0-3.42-1.35-3.42-2.67 0-.39.05-.77.17-1.13a2.4 2.4 0 01-.99-2.03 2.35 2.35 0 011.02-2.05c-.12-.34-.18-.7-.17-1.06.86-.6 1.2-1.7.86-2.7 0-2.52 3.45-2.52 4.57-2.52h2.85c1.3.06 2.56.4 3.71 1 .67.36 1.41.6 2.18.67h3.23c.25 0 .5.11.65.31.12.14 1.1 1.47 1.1 4.69.03 1.8-.28 3.6-.9 5.31a.83.83 0 01-.67.5c-.03 0-3.27.4-4.85 1.98a10.32 10.32 0 00-2.8 5.94 1.4 1.4 0 01-1.45 1.26zm-6.84-10.17c0 .34.52 1 1.75 1h4.06a.83.83 0 01.8 1.1c-.5 1.5-.73 3.07-.72 4.65.08 1.1.44 1.6.79 1.72a11.94 11.94 0 013.23-6.67c1.57-1.58 4.2-2.18 5.32-2.38.41-1.37.62-2.8.61-4.24a8.18 8.18 0 00-.56-3.34h-2.75c-1-.07-1.97-.35-2.85-.81a7.53 7.53 0 00-3.04-.85h-2.85c-1.32 0-2.9.15-2.9.85-.02.11.02.22.09.3a.73.73 0 01.75.77.92.92 0 01-.85.87.85.85 0 00-.85.77c-.05.22.01.44.17.6.42.07.71.45.67.88a.87.87 0 01-.86.77.77.77 0 00-.83.85.8.8 0 00.87.85c.46.01.82.4.81.85 0 .43-.33.78-.76.8-.09.21-.12.44-.1.66z"/>
<path id="def-like-up-a" d="M944.67 520c1.1 0 2.45.87 2.61 3.32.05 1.4-.11 2.82-.48 4.18h2.96c2.15 0 3.42 1.36 3.42 2.67 0 .39-.05.77-.17 1.14a2.4 2.4 0 01.99 2.02c.04.81-.35 1.59-1.02 2.05.12.34.18.7.17 1.07-.86.6-1.2 1.7-.86 2.69 0 2.52-3.45 2.52-4.57 2.52h-2.85a8.94 8.94 0 01-3.71-.99 5.67 5.67 0 00-2.18-.67h-3.23a.83.83 0 01-.65-.32c-.12-.14-1.1-1.47-1.1-4.68-.03-1.81.28-3.62.9-5.32a.83.83 0 01.67-.5c.03 0 3.27-.4 4.85-1.98a10.32 10.32 0 002.8-5.93 1.4 1.4 0 011.45-1.27zm6.84 10.17c0-.34-.52-1-1.75-1h-4.06a.83.83 0 01-.8-1.1c.5-1.5.73-3.07.72-4.65-.08-1.1-.44-1.6-.79-1.72a11.94 11.94 0 01-3.23 6.67c-1.57 1.58-4.2 2.19-5.32 2.38a14.38 14.38 0 00-.61 4.25 8.18 8.18 0 00.56 3.33h2.75c1 .07 1.97.35 2.85.82.94.49 1.98.78 3.04.85h2.85c1.32 0 2.9-.15 2.9-.86a.35.35 0 00-.09-.3.73.73 0 01-.75-.77.92.92 0 01.85-.87c.44 0 .81-.33.85-.77a.65.65 0 00-.17-.6.81.81 0 01-.67-.87.87.87 0 01.86-.78.77.77 0 00.83-.85.8.8 0 00-.87-.85.83.83 0 01-.81-.85c0-.43.33-.78.76-.8.09-.21.12-.43.1-.66z"/>
<path id="def-like-a" d="M701.32 8960.32a.95.95 0 01-.95.95h-5.72c-.96 0-1.92-.95-2.87-.95h-.95v-6.68c.04-.6.4-1.12.95-1.36a4.78 4.78 0 002.87-4.37v-.96a.95.95 0 01.95-.95h.95c.53 0 .95.43.95.95v5.73h3.82a.9.9 0 01.96.96zm-14.31.95v-9.54h1.9a.96.96 0 01.97.95v7.64a.96.96 0 01-.96.95zm.99-8.3a.48.48 0 10.88.38.48.48 0 00-.88-.38z"/>
<path id="def-link-a" d="M626.02 1163.93l-.02 15.99 13.02.01v-4a.86.86 0 01.24-.68.9.9 0 01.66-.28 1 1 0 011 1v4.95a1 1 0 01-.29.7 1 1 0 01-.71.29H625a1 1 0 01-.71-.29 1 1 0 01-.29-.7V1163a1 1 0 011-1h3.95a1 1 0 011 1 .89.89 0 01-.93.93z"/><path id="def-link-b" d="M641.95 1171a1 1 0 01-1-1v-5.59l-9.25 9.3a.99.99 0 01-1.41-.01.99.99 0 01.01-1.41l9.24-9.29h-5.56a1 1 0 01-1-1 1 1 0 011-1h7.97a1 1 0 011 1v8a1 1 0 01-1 1z"/>
<path id="def-mail-a" d="M1058 261c0-.6-.4-1-1-1h-14c-.6 0-1 .4-1 1l8 6.5z"/><path id="def-mail-b" d="M1042 262.5v8.5c0 .6.4 1 1 1h14c.6 0 1-.4 1-1v-8.5l-8 6.5z"/>
<path id="def-outside-a" d="M1204.24 9231.16h-10.05c-.92 0-1.67-.75-1.67-1.68v-4.2c0-.46.38-.84.84-.84a.81.81 0 01.8.84v4.2h10.08v-16.8h-10.08v4.2a.81.81 0 01-.8.84.84.84 0 01-.84-.84v-4.2c0-.93.75-1.68 1.67-1.68h10.05c.92 0 1.67.75 1.67 1.68v16.8c0 .93-.75 1.68-1.67 1.68zm-15.56-10.92h11.37a.84.84 0 110 1.68h-11.36l1.91 1.92a.84.84 0 11-1.18 1.2l-3.35-3.36a.86.86 0 01-.24-.6v-.02a.83.83 0 01.24-.58l3.35-3.36a.83.83 0 011.18 0c.33.33.33.87 0 1.2z"/>
<path id="def-pencil-a" d="M1190.84 9818.68a.64.64 0 01-.19.13l-.07.06-4.42 1.82c-.1.05-.21.07-.32.07a.83.83 0 01-.77-1.15l1.84-4.4v-.02a.38.38 0 01.09-.13l.08-.13v-.01l10.82-10.82-.44-.44-3.56 3.57a.83.83 0 01-1.18-1.18l4.16-4.15a.81.81 0 011.17 0l1.03 1.03 1.86-1.86a.84.84 0 011.17 0l2.58 2.58c.33.32.33.85 0 1.18zm-2.88-1.7l-.58 1.41 1.41-.58zm.88-1.47l1.41 1.4 10.24-10.23-1.4-1.4zm12.69-12.68l-1.27 1.27 1.4 1.4 1.28-1.27z"/>
<path id="def-phone-a" d="M732.62 41c-2.25 0-6.37-2.73-10.24-6.78a33.08 33.08 0 01-5.22-6.96c-1.33-2.53-1.52-4.32-.56-5.31l2.91-2.72c.17-.16.4-.24.63-.23.24.02.46.13.61.32l3.79 4.58c.23.28.28.68.12 1.01l-1.47 3.08 5.24 5.48 2.93-1.54a.83.83 0 01.96.12l4.38 3.96c.17.16.28.38.3.63a.97.97 0 01-.22.67l-2.53 3.02c-.33.34-.81.67-1.63.67zm-14.76-17.78c-.15.21-.25 1.09.83 3.15 1.06 2 2.8 4.32 4.93 6.55 3.87 4.06 7.53 6.25 9 6.25.2 0 .3-.04.33-.08l1.94-2.3-3.27-2.95-2.98 1.56a.84.84 0 01-1.01-.17l-6.12-6.42a.92.92 0 01-.16-1.05l1.48-3.12-2.82-3.42z"/>
<path id="def-plus-a" d="M1223.33 4172.67h-6.66v6.66a.67.67 0 01-1.34 0v-6.66h-6.66a.67.67 0 010-1.34h6.66v-6.66a.67.67 0 011.34 0v6.66h6.66a.67.67 0 010 1.34z"/>
<path id="def-search-a" d="M1092.53 24.87a6.7 6.7 0 10-.05 13.4 6.7 6.7 0 00.05-13.4zm12.1 18.85a.95.95 0 01-1.35 0l-5.4-5.43a8.62 8.62 0 111.35-1.35l5.4 5.43c.37.37.37.98 0 1.35z"/>
<path id="def-shape-a" d="M879 13323h-4a1 1 0 01-1-1v-4a1 1 0 011-1h.85c-1.29-8.14-8.38-15.22-16.85-16.81v.81a1 1 0 01-1 1h-4a1 1 0 01-1-1v-.81c-8.47 1.6-15.56 8.67-16.85 16.81h.85a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4a1 1 0 011-1h1.13c1.03-7.24 6.24-13.76 13.07-17h-6.48a1.98 1.98 0 01-1.72 1.01c-.97 0-1.8-.69-1.98-1.65a2 2 0 011.28-2.23 2 2 0 012.42.87H853v-1a1 1 0 011-1h4a1 1 0 011 1v1h12.27a2.01 2.01 0 110 2h-6.47c6.83 3.24 12.04 9.76 13.07 17H879a1 1 0 011 1v4a1 1 0 01-1 1zm-43-4h-2v2h2zm21-21h-2v2h2zm21 21h-2v2h2zm-22.93-12.51a.52.52 0 01.1-.18l.01-.03.03-.03a1 1 0 01.2-.21l.06-.04c.06-.04.12-.08.19-.1l.04-.02.09-.01.05-.01.16-.03.15.03h.04l.11.01.04.02.19.1.02.02.02.01a.92.92 0 01.24.25l.02.03c.04.05.08.12.1.18l.03.05c.02.07 2.33 7.26 8.51 10.59.26.14.45.39.51.68a.97.97 0 01-.2.82 23.7 23.7 0 00-3.99 8.81 8.02 8.02 0 012.21 5.57 1 1 0 01-1 1h-14a1 1 0 01-1-1 8.02 8.02 0 012.21-5.57 23.66 23.66 0 00-3.99-8.8 1 1 0 01.31-1.51c6.21-3.34 8.49-10.52 8.51-10.59l.03-.04zm.93 20.49a6 6 0 00-5.92 5.02h11.84a6 6 0 00-5.92-5.02zm-4.06-.9a8.17 8.17 0 018.12 0 25.8 25.8 0 013.47-7.78 20.33 20.33 0 01-6.53-6.96v6.93a2 2 0 01-.97 3.73 2.03 2.03 0 01-2.03-2 2 2 0 011-1.7v-6.96a20.33 20.33 0 01-6.53 6.96 25.8 25.8 0 013.47 7.78z"/>
<path id="def-strawberry-a" d="M873.26 13427.96a7.49 7.49 0 01-4.13-1.21 20.45 20.45 0 012.02 8.92c0 10.41-17.26 18.25-28.46 18.25-3.71 0-6.53-.86-8.17-2.48l-.1-.1c-3.9-4.01-2.65-13.97.62-21.78 3.77-9.01 9.53-14.39 15.41-14.39 3.1 0 6.17.68 8.97 1.99a8.12 8.12 0 01-.65-1.24c-1.09-2.7-.53-5.87 1.68-9.44a1 1 0 011.11-.45c.21.06 5.12 1.38 6.8 5.49.8 2.19.7 4.61-.29 6.72 1.25-.51 2.58-.79 3.92-.83 5.12 0 7.74 4.75 8.4 7.26a.97.97 0 01-.45 1.1 12.95 12.95 0 01-6.68 2.19zm-36.36 2.36c-3.42 8.19-3.85 16.84-.97 19.69l.08.09c1.26 1.18 3.62 1.82 6.68 1.82a38.27 38.27 0 0017.26-4.82c3.43-1.92 9.18-5.96 9.18-11.43a18.4 18.4 0 00-18.68-18.5c-5.93 0-10.89 6.79-13.55 13.15zm29.59-18.05c-.97-2.38-3.49-3.6-4.73-4.07-1.52 2.71-1.89 5.05-1.12 6.96.96 2.37 3.48 3.6 4.73 4.08 1.52-2.71 1.89-5.05 1.12-6.97zm5.5 7.13c-1.75.08-3.45.6-4.95 1.51.59 1.54 2.36 5.06 6.22 5.06 1.75-.08 3.45-.6 4.94-1.5-.59-1.55-2.36-5.07-6.21-5.07zm-13.43 13.54h3v3h-3zm-4-5h3v3h-3zm2 13h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm2 22h-3v-3h3zm-7-8h3v3h-3zm0-9h3v3h-3zm-5 14h3v3h-3zm0-9h3v3h-3z"/>
<path id="def-telegram-a" d="M823.8 272.93l-4.09 20.05c-.3 1.42-1.16 1.76-2.36 1.1l-6.52-4.77-3.13 3c-.55.47-.75.66-1.27.65-.5 0-.74-.3-1.03-1.1l-2.4-7.29-6.26-1.94c-1.01-.32-1.06-1.66.31-2.05l25.01-9.39c1.14-.52 2.18 0 1.74 1.74zm-17.39 18.55l.6-5.26 11.83-10.54c.31-.36.09-.88-.61-.42l-14.24 8.87z"/>
<path id="def-tm-a" d="M1406.46 346.34l13.28-8.34c.65-.44.86.05.57.39l-11.02 9.91-.57 4.96zm16.84-12.16l-23.32 8.83c-1.27.37-1.24 1.62-.3 1.93l5.84 1.82 2.24 6.86c.28.75.5 1.04.96 1.04.49 0 .67-.18 1.19-.62.58-.55 1.5-1.43 2.92-2.83l6.08 4.49c1.12.62 1.92.3 2.21-1.04l3.8-18.85c.41-1.63-.55-2.12-1.62-1.63z"/>
<path id="def-trash-a" d="M1175 9805h-1.09l-1.8 13.12a2.15 2.15 0 01-2.11 1.88h-8a2.14 2.14 0 01-2.1-1.88l-1.78-13.12H1157a1 1 0 010-2h5v-1a3 3 0 013-3h2a3 3 0 013 3v1h5a1 1 0 010 2zm-7-3a1 1 0 00-1-1h-2a1 1 0 00-1 1v1h4zm-7.87 3l1.75 12.9c.02.05.07.09.12.1h8c.06-.01.1-.05.12-.11l1.78-12.89zm6.87 3h2v6h-2zm-4 0h2v6h-2z"/>
<path id="def-triangle-a" d="M1238 6883l7.22 7.22 7.22-7.22z"/>
<path id="def-user-circle-a" d="M1265.24 30.18a10 10 0 01-2.18 10.9 6.94 6.94 0 00-4.7-4.69 5 5 0 10-4.66.01c-2.24.72-4 2.47-4.72 4.71a10 10 0 1116.26-10.93zm-6.22 1.82a3 3 0 11-6-.01 3 3 0 016 .01zm-8.3 10.48c.4-2.6 2.65-4.5 5.28-4.48 2.73 0 5.1 1.96 5.27 4.37l.03.09a9.9 9.9 0 01-10.57.02zM1256 46a12.01 12.01 0 000-24 12 12 0 100 24z"/>
<path id="def-vb-a" d="M955.45 276.38c.68 3.25.79 6.51-.02 9.76-.14.57-.36 1.11-.58 1.65-.84 2.05-2.5 3.13-4.57 3.73-1.63.48-3.31.69-5 .82-.89.07-2.29.03-3.18.02-.76-.01-.55-.04-1.04.45-.96.97-1.84 1.82-2.76 2.84a28 28 0 01-1.35 1.35v-4.93c0-.25-.07-.4-.3-.5-.26-.1-.5-.24-.75-.34a6.95 6.95 0 01-4.35-4.98 19.93 19.93 0 01-.51-6.16c.07-1.4.26-2.79.64-4.15a6.8 6.8 0 013.48-4.25 13.83 13.83 0 014.79-1.47 25.9 25.9 0 019.8.59 8.9 8.9 0 013.5 1.69 6.59 6.59 0 012.2 3.88zm-12.05-1.52c.54.04 1.07.15 1.6.28 1.98.5 3.52 1.53 4.32 3.43.42.99.63 2.02.7 3.08.02.27.15.42.43.42.27-.01.38-.19.39-.43.02-.21.01-.42.01-.64a7.41 7.41 0 00-1.39-4.12c-1.49-1.96-3.43-2.7-6-2.82-.31-.02-.49.1-.51.42-.01.31.21.36.45.38zm4.39 4.61c.11.4.21.81.26 1.22.03.27-.03.64.42.65.32.01.4-.13.43-.67a4.58 4.58 0 00-.68-2.46c-.96-1.52-2.37-2.16-4.16-2.32-.28-.03-.48.08-.52.37-.05.3.14.44.41.48.55.08 1.08.22 1.6.4a3.32 3.32 0 012.24 2.33zm-2.22-1.46a2.29 2.29 0 00-.89-.22c-.38.03-.58.19-.58.45.01.33.3.33.52.39l.27.06c.72.19 1.13.65 1.27 1.36.03.13.04.27.08.4.06.18.18.31.4.31.21-.01.34-.13.39-.32l.04-.35a2.4 2.4 0 00-1.5-2.08zm4.89 7.94c-.78-.65-1.6-1.25-2.47-1.78-1.02-.62-1.77-.45-2.47.49l-.11.14c-.32.39-.72.54-1.22.4a5.89 5.89 0 01-1.51-.74 6.76 6.76 0 01-2.77-3.19c-.35-.82-.19-1.35.54-1.88l.28-.2c.55-.45.68-.89.37-1.52a9.94 9.94 0 00-2.3-3.05 1.3 1.3 0 00-.97-.36 2.9 2.9 0 00-2.62 2.74c-.01.37.08.78.24 1.17 2.23 5.38 6.16 9.1 11.6 11.36.4.17.82.27 1.25.15a3.75 3.75 0 002.55-2.16c.28-.61.14-1.13-.39-1.57z"/>
<path id="def-ynadex-a" d="M471.93 10326.44h-.59c-.92 0-1.8-.64-1.8-2.24 0-1.67.83-2.35 1.68-2.35h.7v4.59zm.92-5.44h-1.6c-1.55 0-2.87 1.13-2.87 3.33 0 1.32.64 2.3 1.78 2.78l-2.13 3.68c-.07.12 0 .21.1.21h1c.08 0 .14-.03.17-.1l1.93-3.6h.7v3.6c0 .05.04.1.1.1h.86c.08 0 .11-.04.11-.1v-9.77c0-.09-.06-.13-.15-.13z"/>
<path id="def-ytube-a" d="M1343.37 349.72v-9.44l6.27 4.72zm-7.81-14.03a3.54 3.54 0 00-3.56 3.51v11.6a3.54 3.54 0 003.56 3.51h19.88a3.54 3.54 0 003.56-3.5V339.2a3.54 3.54 0 00-3.56-3.51h-19.88z"/>
</defs>
<symbol id="icon-arrow-chevron" viewBox="0 0 9 15"><path d="M7.07.862L0 7.93 7.072 15l1.06-1.06-6.011-6.01L8.13 1.922 7.07.862z"/></symbol>
<symbol id="icon-arrow-down" viewBox="0 0 8 5"><use xlink:href="#def-arrow-down-a" transform="translate(-223 -20813)"/></symbol>
<symbol id="icon-arrow-left" viewBox="0 0 18 12"><path d="M.1 6.3c-.1-.3 0-.6.1-.8l4.3-4.3c.3-.3.7-.3 1 0 .3.3.3.7 0 1l-3 3.1h14.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7H2.5l3.1 3.1c.3.3.3.8 0 1-.2.2-.3.2-.4.3-.2.1-.5 0-.7-.2L.2 6.6c-.1-.1-.1-.2-.1-.3z"/></symbol>
<symbol id="icon-arrow-menu" viewBox="0 0 10 5"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0l5 5 5-5H0z"/></symbol>
<symbol id="icon-arrow-right" viewBox="0 0 15 12"><path d="M14.19 5.77c.11.26.05.57-.15.78l-4.32 4.33a.72.72 0 01-1.02 0 .72.72 0 010-1.02l3.09-3.1H.69A.72.72 0 010 6.04c0-.38.31-.7.69-.72h11.1L8.7 2.23a.73.73 0 01.33-1.21c.24-.06.51.01.69.19l4.32 4.32a.6.6 0 01.15.24z"/></symbol>
<symbol id="icon-arrow" viewBox="0 0 20 17"><use xlink:href="#def-arrow-a" transform="translate(-1033 -789)"/></symbol>
<symbol id="icon-be" viewBox="0 0 25 16"><use xlink:href="#def-be-a" transform="translate(-39 -27)"/></symbol>
<symbol id="icon-be2-mob" viewBox="0 0 34 34"><path d="M15.426 16.508s1.507-.112 1.507-1.879S15.7 12 14.138 12H9v9.875h5.138s3.137.099 3.137-2.915c0 0 .137-2.452-1.85-2.452zm-4.162-2.753h2.874s.699 0 .699 1.027c0 1.028-.411 1.177-.877 1.177h-2.696v-2.204zm2.742 6.365h-2.742v-2.64h2.874s1.041-.013 1.041 1.357c0 1.142-.761 1.271-1.173 1.283zM23.408 12.582h-4.074v1.216h4.074v-1.216zM21.458 14.513c-3.797 0-3.794 3.793-3.794 3.793s-.26 3.775 3.794 3.775c0 0 3.38.193 3.38-2.626H23.1s.058 1.062-1.584 1.062c0 0-1.737.116-1.737-1.718h5.116s.56-4.286-3.437-4.286zm1.545 2.968h-3.244s.213-1.522 1.738-1.522 1.506 1.522 1.506 1.522z"/></symbol>
<symbol id="icon-be2" viewBox="0 0 56 56"><path d="M27.475 27.946s1.987-.148 1.987-2.479c0-2.33-1.625-3.467-3.685-3.467H19v13.024h6.777s4.137.13 4.137-3.844c0 0 .18-3.234-2.439-3.234zm-5.489-3.631h3.791s.921 0 .921 1.355-.542 1.551-1.156 1.551h-3.556v-2.906zm3.616 8.394h-3.616v-3.48h3.79s1.374-.018 1.374 1.788c0 1.506-1.004 1.677-1.548 1.692zM38.004 22.767H32.63v1.604h5.373v-1.604zM35.432 25.314c-5.009 0-5.004 5.003-5.004 5.003s-.344 4.98 5.004 4.98c0 0 4.456.254 4.456-3.464h-2.292s.077 1.4-2.088 1.4c0 0-2.291.154-2.291-2.266h6.748s.738-5.653-4.533-5.653zm2.037 3.915H33.19s.28-2.008 2.291-2.008c2.013 0 1.987 2.008 1.987 2.008z"/></symbol>
<symbol id="icon-briefcase" viewBox="834 13519 48 44"><path d="M836.5 13563c-1.4 0-2.5-1.2-2.5-2.6v-19.4c0 .6.4 1 1 1h1v18.4c0 .3.2.6.5.6h42.9c.3 0 .5-.3.5-.6v-18.4h1c.6 0 1-.4 1-1s-.4-1-1-1h-1v-10.4c0-.3-.2-.5-.5-.6h-42.9c-.3 0-.5.3-.5.6v10.4h-1c-.6 0-1 .4-1 1v-11.4c0-1.4 1.1-2.5 2.5-2.6H849v1c0 .6.4 1 1 1s1-.4 1-1v-1h14v1c0 .6.4 1 1 1 .3 0 .5-.1.7-.3.2-.2.3-.4.3-.7v-1h12.5c1.4 0 2.5 1.2 2.5 2.6v30.9c0 1.4-1.1 2.6-2.5 2.6h-43zm18.4-21H836v-2h18.9c.6 0 1 .4 1 1s-.4 1-1 1zm25.1-2v2h-18.9c-.6 0-1-.4-1-1s.4-1 1-1H880zm-13-16.8c0-2.3-1.9-4.2-4.2-4.2h-9.6c-2.3 0-4.2 1.9-4.2 4.2v3.8h2v-3.8c0-1.2 1-2.2 2.2-2.2h9.6c1.2 0 2.2 1 2.2 2.2v3.8h2v-3.8z"/><clipPath id="def-briefcase-b"><use xlink:href="#def-briefcase-a" overflow="visible"/></clipPath><g clip-path="url(#def-briefcase-b)"><path stroke-width="4" stroke-miterlimit="50" d="M855 13538c0-1.7 1.3-3 3-3s3 1.3 3 3v7c0 1.7-1.3 3-3 3s-3-1.3-3-3v-7z"/></g></symbol>
<symbol id="icon-burger" viewBox="0 0 20 14"><g fill-rule="evenodd"><path d="M0 0h20v2H0zM0 6h20v2H0zM0 12h20v2H0z"/></g></symbol>
<symbol id="icon-cancel-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zm0-22a10 10 0 100 20 10 10 0 000-20zm4.71 13.29L13.41 12l3.3-3.29a1 1 0 00-.02-1.4 1 1 0 00-1.4-.02L12 10.59l-3.29-3.3a1 1 0 00-1.4.02 1 1 0 00-.02 1.4l3.3 3.29-3.3 3.29a1 1 0 00.02 1.4 1 1 0 001.4.02l3.29-3.3 3.29 3.3a1 1 0 001.42 0 1 1 0 000-1.42z"/></symbol>
<symbol id="icon-clip" viewBox="0 0 25 22"><path d="M12.1 21.37a1.02 1.02 0 01-.71-1.73L21.74 9.11a4.19 4.19 0 000-5.87 4.04 4.04 0 00-5.78 0l-12 12.21c-.59.49-.94 1.2-.97 1.97.05.49.28.95.63 1.29.31.35.77.53 1.23.48.74-.17 1.4-.57 1.89-1.15l9.42-9.58a.98.98 0 011.41 0c.39.4.39 1.04 0 1.44l-9.42 9.58A5.3 5.3 0 015.1 21.2a3.37 3.37 0 01-2.89-1.05A4.16 4.16 0 011 17.54a4.62 4.62 0 011.55-3.53l12-12.2a6.03 6.03 0 018.6 0 6.24 6.24 0 010 8.74L12.8 21.07a.98.98 0 01-.7.3z"/></symbol>
<symbol id="icon-clock" viewBox="0 0 24 24"><path d="M0 12a12 12 0 1124 0 12 12 0 01-24 0zm2 0a10 10 0 1020 0 10 10 0 00-20 0zm14 5a1 1 0 00.71-1.71L13 11.59V5a1 1 0 00-1-1 1 1 0 00-1 1v7a1 1 0 00.08.38c.05.12.12.24.21.33l4 4c.19.18.45.29.71.29z"/></symbol>
<symbol id="icon-close-menu" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.636 2.303L13.97.636 8.136 6.469 2.303.636.636 2.303 6.47 8.136.636 13.97l1.667 1.667 5.833-5.833 5.833 5.833 1.667-1.666-5.833-5.834 5.833-5.833z"/></symbol>
<symbol id="icon-close" viewBox="0 0 16 15"><g fill-rule="evenodd"><path d="M1.963.045l13.791 12.86-1.364 1.463L.6 1.508z"/><path d="M14.39.045L.6 12.905l1.364 1.463 13.79-12.86z"/></g></symbol>
<symbol id="icon-comments" viewBox="0 0 16 16"><use xlink:href="#def-comments-a" transform="translate(-748 -8949)"/></symbol>
<symbol id="icon-eaye" viewBox="0 0 16 11"><use xlink:href="#def-eaye-a" transform="translate(-614 -8951)"/></symbol>
<symbol id="icon-fb" viewBox="0 0 13 25"><path d="M8.44 25V13.6h3.83l.58-4.45H8.44V6.31c0-1.28.36-2.16 2.2-2.16H13V.18A29.7 29.7 0 009.57 0c-3.4 0-5.73 2.07-5.73 5.87v3.28H0v4.45h3.84V25z"/></symbol>
<symbol id="icon-fb2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.415 24.638v-7.131h2.457l.366-2.784h-2.823v-1.776c0-.8.23-1.351 1.411-1.351h1.514v-2.49A21.931 21.931 0 0019.14 9c-2.182 0-3.677 1.295-3.677 3.672v2.051H13v2.784h2.463v7.13h2.952z"/></symbol>
<symbol id="icon-fb2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M30.142 38.625V29.22h3.24l.483-3.671H30.14v-2.343c0-1.056.305-1.782 1.862-1.782H34V18.14a28.937 28.937 0 00-2.902-.14c-2.877 0-4.849 1.708-4.849 4.843v2.706H23v3.671h3.25v9.405h3.892z"/></symbol>
<symbol id="icon-file" viewBox="0 0 24 20"><use xlink:href="#def-file-a" transform="translate(-491 -9437)"/></symbol>
<symbol id="icon-github-mob" viewBox="0 0 34 34"><path d="M17.2 10c-3.978 0-7.2 3.307-7.2 7.386 0 3.263 2.063 6.031 4.923 7.007.36.07.492-.16.492-.355 0-.175-.006-.64-.009-1.256-2.003.445-2.425-.99-2.425-.99-.328-.853-.801-1.081-.801-1.081-.652-.458.05-.449.05-.449.723.052 1.103.761 1.103.761.642 1.13 1.685.803 2.097.615.065-.478.25-.803.456-.988-1.599-.185-3.28-.82-3.28-3.65 0-.806.28-1.464.741-1.981-.08-.187-.324-.938.063-1.955 0 0 .603-.198 1.98.757a6.754 6.754 0 011.8-.25 6.754 6.754 0 011.8.25c1.368-.955 1.971-.757 1.971-.757.387 1.017.144 1.768.072 1.955.46.517.738 1.175.738 1.981 0 2.838-1.683 3.462-3.285 3.644.252.222.486.674.486 1.366 0 .989-.009 1.783-.009 2.023 0 .193.126.424.495.35 2.881-.969 4.942-3.739 4.942-6.997 0-4.079-3.224-7.386-7.2-7.386z"/></symbol>
<symbol id="icon-github" viewBox="0 0 56 56"><path d="M27.913 19C22.436 19 18 23.362 18 28.741c0 4.305 2.84 7.955 6.778 9.242.496.092.677-.21.677-.468 0-.232-.008-.844-.012-1.657-2.758.588-3.34-1.306-3.34-1.306-.45-1.125-1.102-1.425-1.102-1.425-.898-.604.07-.592.07-.592.995.068 1.518 1.004 1.518 1.004.884 1.49 2.32 1.059 2.887.81.09-.63.344-1.059.628-1.302-2.202-.244-4.515-1.082-4.515-4.814 0-1.063.384-1.932 1.02-2.614-.112-.246-.446-1.236.086-2.578 0 0 .83-.26 2.727.999a9.676 9.676 0 012.478-.329 9.676 9.676 0 012.478.329c1.883-1.26 2.714-.999 2.714-.999.532 1.342.198 2.332.099 2.578a3.737 3.737 0 011.016 2.614c0 3.742-2.317 4.566-4.523 4.805.347.293.67.89.67 1.803 0 1.303-.013 2.35-.013 2.667 0 .255.173.56.681.463 3.966-1.279 6.804-4.932 6.804-9.23 0-5.38-4.439-9.741-9.913-9.741z"/></symbol>
<symbol id="icon-gplus" viewBox="0 0 13 8"><use xlink:href="#def-gplus-a" transform="translate(-466 -10165)"/><use xlink:href="#def-gplus-b" transform="translate(-466 -10165)"/></symbol>
<symbol id="icon-head" viewBox="0 0 54 45"><g transform="translate(2 2)" fill-rule="evenodd"><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" fill-rule="nonzero"/><path stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" d="M46.923 13.25L22.99 0 0 14.007l23.179 13.44L46.923 13.25V30"/><path d="M9.23 19.458v17.61s14.232 8.328 28.462 0V19.231" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/><circle stroke-width="3" fill-rule="nonzero" stroke-linecap="round" stroke-linejoin="round" cx="47.308" cy="32.692" r="2.692"/><path d="M32.733 18.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865-3.694-1.99-7.403-3.98-11.097-5.957-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957zM36.733 15.745c.53.295 1.074.575 1.604.87 1.302.7 2.468-1.164 1.181-1.865a4281.61 4281.61 0 00-11.097-5.957c-.53-.294-1.075-.575-1.604-.869-1.302-.7-2.468 1.163-1.181 1.864 3.694 1.99 7.403 3.981 11.097 5.957z" fill-rule="nonzero"/></g></symbol>
<symbol id="icon-inst" viewBox="0 0 26 26"><use xlink:href="#def-inst-a" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-b" transform="translate(-1468 -332)"/><use xlink:href="#def-inst-c" transform="translate(-1468 -332)"/></symbol>
<symbol id="icon-instagram-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M24.027 20.23a3.801 3.801 0 01-3.797 3.797h-6.433A3.801 3.801 0 0110 20.23v-6.433A3.801 3.801 0 0113.797 10h6.433a3.801 3.801 0 013.797 3.797v6.433zm-7.014-7.052a3.84 3.84 0 00-3.835 3.835 3.84 3.84 0 003.835 3.836 3.84 3.84 0 003.836-3.836 3.84 3.84 0 00-3.836-3.835zm0 6.848A3.016 3.016 0 0114 17.013 3.016 3.016 0 0117.013 14a3.016 3.016 0 013.013 3.013 3.016 3.016 0 01-3.013 3.013zm2.794-7.077c0-.625.509-1.133 1.133-1.133.625 0 1.134.508 1.134 1.133s-.509 1.134-1.134 1.134a1.135 1.135 0 01-1.133-1.134z"/></symbol>
<symbol id="icon-instagram" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M37.5 32.492a5.014 5.014 0 01-5.008 5.008h-8.484A5.014 5.014 0 0119 32.492v-8.484A5.014 5.014 0 0124.008 19h8.484a5.014 5.014 0 015.008 5.008v8.484zm-9.25-9.3a5.064 5.064 0 00-5.058 5.058c0 2.79 2.269 5.059 5.058 5.059 2.79 0 5.059-2.27 5.059-5.059 0-2.79-2.27-5.058-5.059-5.058zm0 9.032a3.978 3.978 0 01-3.974-3.974 3.978 3.978 0 013.974-3.974 3.978 3.978 0 013.974 3.974 3.978 3.978 0 01-3.974 3.974zm3.685-9.334c0-.825.67-1.495 1.494-1.495.825 0 1.495.67 1.495 1.495 0 .824-.67 1.495-1.495 1.495-.824 0-1.494-.67-1.494-1.495z"/></symbol>
<symbol id="icon-like-down" viewBox="0 0 20 22"><use xlink:href="#def-like-down-a" transform="translate(-995 -522)"/></symbol>
<symbol id="icon-like-up" viewBox="0 0 20 22"><use xlink:href="#def-like-up-a" transform="translate(-934 -520)"/></symbol>
<symbol id="icon-like" viewBox="0 0 16 16"><use xlink:href="#def-like-a" transform="translate(-687 -8946)"/></symbol>
<symbol id="icon-link" viewBox="0 0 19 21"><use xlink:href="#def-link-a" transform="translate(-624 -1161)"/><use xlink:href="#def-link-b" transform="translate(-624 -1161)"/></symbol>
<symbol id="icon-mail" viewBox="0 0 16 12"><use xlink:href="#def-mail-a" transform="translate(-1042 -260)"/><use xlink:href="#def-mail-b" transform="translate(-1042 -260)"/></symbol>
<symbol id="icon-minus-zoom" viewBox="0 0 26 2"><path stroke-linecap="square" stroke-miterlimit="50" stroke-width="2" d="M1.5 1h23.19"/></symbol>
<symbol id="icon-outside" viewBox="0 0 21 21"><use xlink:href="#def-outside-a" transform="translate(-1185 -9211)"/></symbol>
<symbol id="icon-pencil" viewBox="0 0 20 21"><use xlink:href="#def-pencil-a" transform="translate(-1185 -9800)"/></symbol>
<symbol id="icon-phone" viewBox="0 0 21 22"><use xlink:href="#def-phone-a" transform="translate(-716 -19)"/></symbol>
<symbol id="icon-play-circle" viewBox="0 0 24 24"><path d="M12 24a12 12 0 110-24 12 12 0 010 24zM2 12a10 10 0 1020 0 10 10 0 00-20 0z"/><path d="M11.01 14.52c-.05.28.1.55.35.67.25.13.55.07.74-.14l2.85-2.94c.26-.27.27-.7.02-.98l-2.83-2.94a.69.69 0 00-.75-.13.67.67 0 00-.38.65z"/></symbol>
<symbol id="icon-play-reviews" viewBox="0 0 9 9"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.074 4.507c0 .41-.745.741-.745.741l-5.854 2.91a.619.619 0 01-.563-.054.649.649 0 01-.294-.494V1.392A.586.586 0 01.895.853a.557.557 0 01.595.01l5.839 2.903s.745.331.745.741z"/></symbol>
<symbol id="icon-play" viewBox="0 0 17 17"><path d="M17 9.02c0 .88-1.6 1.59-1.6 1.59L2.84 16.86c-.4.16-.84.12-1.21-.12A1.4 1.4 0 011 15.68V2.33c-.03-.47.2-.92.6-1.16.39-.24.89-.23 1.27.02L15.4 7.43s1.6.71 1.6 1.59z"/></symbol>
<symbol id="icon-plus-zoom" viewBox="0 0 24 24"><path d="M23 13H13v10a1 1 0 01-1 1 1 1 0 01-1-1V13H1a1 1 0 01-1-1 1 1 0 011-1h10V1a1 1 0 011-1 1 1 0 011 1v10h10a1 1 0 011 1 1 1 0 01-1 1z"/></symbol>
<symbol id="icon-plus" viewBox="0 0 16 16"><use xlink:href="#def-plus-a" transform="translate(-1208 -4164)"/></symbol>
<symbol id="icon-search" viewBox="0 0 22 22"><use xlink:href="#def-search-a" transform="translate(-1083 -22)"/></symbol>
<symbol id="icon-shape" viewBox="0 0 48 38"><use xlink:href="#def-shape-a" transform="translate(-832 -13296)"/></symbol>
<symbol id="icon-share" viewBox="0 0 26 24"><path d="M21.03 8a3.95 3.95 0 01-3.02-1.41l-9.08 4.54c.12.55.13 1.11.02 1.66l9.06 4.61a3.98 3.98 0 11-.9 1.79l-9.05-4.61a4 4 0 11-.05-5.22l9.1-4.55A4 4 0 1121.03 8zm0 14a2 2 0 002-2 2 2 0 10-2 2zm-18-10a2 2 0 104 0 2 2 0 00-4 0zm16-8a2 2 0 104 0 2 2 0 00-4 0z"/></symbol>
<symbol id="icon-smile" viewBox="0 0 23 24"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 23.278c-6.351 0-11.5-5.148-11.5-11.5C0 5.427 5.149.278 11.5.278S23 5.427 23 11.778c-.005 6.35-5.15 11.495-11.5 11.5zm0-21.083a9.583 9.583 0 00-9.583 9.583 9.584 9.584 0 1019.167 0A9.599 9.599 0 0011.5 2.195zm-6.613 12.87a7.38 7.38 0 006.613 4.38 7.333 7.333 0 006.613-4.38.957.957 0 00-.93-1.427.96.96 0 00-.796.603 5.277 5.277 0 01-9.774 0 .959.959 0 00-1.726.824zm10.447-3.287a1.917 1.917 0 110-3.833 1.917 1.917 0 010 3.833zM5.75 9.862a1.917 1.917 0 103.833 0 1.917 1.917 0 00-3.833 0z"/></symbol>
<symbol id="icon-socials" viewBox="0 0 40 40"><g fill-rule="evenodd"><circle cx="20" cy="20" r="20"/><path d="M20.021 31h-.485C13.717 31 9 26.08 9 20.009c0-6.07 4.717-10.991 10.536-10.991.309-.024.619-.024.928 0 5.819 0 10.536 4.92 10.536 10.99C31 26.08 26.283 31 20.464 31h-.443zm0-2.198h.316c4.655 0 8.43-3.937 8.43-8.793s-3.775-8.793-8.43-8.793h-.632c-4.655 0-8.43 3.937-8.43 8.793s3.775 8.793 8.43 8.793h.316z"/><path d="M19.382 31C13.648 31 9 26.08 9 20.009c0-6.07 4.648-10.991 10.382-10.991.305-.024.61-.024.914 0 .252.02.488.138.665.33 5.385 5.95 5.385 15.338 0 21.29a.998.998 0 01-1.142.252.992.992 0 01-.437.11zm.322-19.784h-.238c-4.588 0-8.306 3.937-8.306 8.793s3.718 8.793 8.306 8.793a.981.981 0 01.26 0c4.23-5.007 4.23-12.58 0-17.586h-.022z" clip-rule="evenodd"/><path d="M19.91 30.967a1.101 1.101 0 01-.419-.077 1.101 1.101 0 01-1.21-.253c-5.708-5.95-5.708-15.337 0-21.288a1.1 1.1 0 01.704-.33 6.664 6.664 0 011.012 0C26.074 9.02 31 13.94 31 20.01S26.074 31 19.997 31l-.088-.033zm-.353-19.783a13.177 13.177 0 000 17.585c.091-.012.184-.012.275 0 4.861 0 8.802-3.936 8.802-8.792s-3.94-8.793-8.802-8.793h-.275z" clip-rule="evenodd"/><path d="M27.944 17H11.056C10.473 17 10 16.552 10 16s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1zM27.944 25H11.056C10.473 25 10 24.552 10 24s.473-1 1.056-1h16.888c.583 0 1.056.448 1.056 1s-.473 1-1.056 1z"/></g></symbol>
<symbol id="icon-strawberry" viewBox="0 0 49 48"><use xlink:href="#def-strawberry-a" transform="translate(-832 -13406)"/></symbol>
<symbol id="icon-telegram" viewBox="0 0 29 24"><use xlink:href="#def-telegram-a" transform="translate(-795 -271)"/></symbol>
<symbol id="icon-telegram2-mob" viewBox="0 0 34 34"><path d="M14.95 19.329l-.25 3.528c.358 0 .514-.154.7-.34l1.683-1.607 3.486 2.553c.64.356 1.09.168 1.263-.588L24.12 12.15c.204-.946-.341-1.316-.964-1.084l-13.452 5.15c-.918.357-.904.869-.156 1.1l3.44 1.07 7.988-4.998c.375-.25.717-.112.436.137L14.95 19.33z"/></symbol>
<symbol id="icon-telegram2" viewBox="0 0 56 56"><path d="M25.848 30.985l-.331 4.653c.473 0 .678-.203.924-.447l2.22-2.121 4.598 3.367c.843.47 1.437.223 1.665-.776l3.018-14.143.001-.001c.268-1.247-.45-1.734-1.272-1.428L18.929 26.88c-1.211.47-1.193 1.145-.206 1.451l4.536 1.411 10.536-6.593c.495-.328.946-.146.575.182l-8.522 7.653z"/></symbol>
<symbol id="icon-tm" viewBox="0 0 26 22"><use xlink:href="#def-tm-a" transform="translate(-1399 -334)"/></symbol>
<symbol id="icon-trash" viewBox="0 0 20 21"><use xlink:href="#def-trash-a" transform="translate(-1156 -9799)"/></symbol>
<symbol id="icon-triangle" viewBox="0 0 16 8"><use xlink:href="#def-triangle-a" transform="translate(-1237 -6883)"/></symbol>
<symbol id="icon-tw" viewBox="0 0 18 15"><path d="M18 1.75c-.66.3-1.37.5-2.12.59A3.7 3.7 0 0017.5.27c-.71.43-1.5.74-2.34.91a3.68 3.68 0 00-6.39 2.56c0 .3.03.58.09.85A10.45 10.45 0 011.25.69 3.75 3.75 0 002.4 5.68a3.67 3.67 0 01-1.68-.47v.05a3.75 3.75 0 002.97 3.67 3.51 3.51 0 01-1.67.06 3.7 3.7 0 003.45 2.6A7.33 7.33 0 010 13.14a10.37 10.37 0 005.66 1.68c6.79 0 10.51-5.7 10.51-10.64l-.01-.49A7.35 7.35 0 0018 1.76z"/></symbol>
<symbol id="icon-twitter-mob" viewBox="0 0 34 34"><path d="M24.406 12.386a6.16 6.16 0 01-1.702.466 2.937 2.937 0 001.3-1.632c-.572.34-1.202.58-1.873.715a2.952 2.952 0 00-5.109 2.02c0 .233.02.458.068.672a8.36 8.36 0 01-6.087-3.089 2.957 2.957 0 00.908 3.947 2.917 2.917 0 01-1.335-.363v.032a2.967 2.967 0 002.366 2.902c-.24.066-.502.097-.774.097-.189 0-.38-.01-.56-.05a2.981 2.981 0 002.76 2.057 5.934 5.934 0 01-3.661 1.26c-.242 0-.475-.011-.707-.04a8.314 8.314 0 004.53 1.325c5.435 0 8.406-4.502 8.406-8.404 0-.13-.004-.257-.01-.382a5.89 5.89 0 001.48-1.533z"/></symbol>
<symbol id="icon-twitter" viewBox="0 0 56 56"><path d="M38 21.828c-.707.31-1.46.515-2.244.615a3.874 3.874 0 001.713-2.153 7.783 7.783 0 01-2.47.943 3.894 3.894 0 00-6.738 2.664c0 .308.026.605.09.887a11.025 11.025 0 01-8.028-4.074 3.922 3.922 0 00-.533 1.969 3.9 3.9 0 001.73 3.237 3.847 3.847 0 01-1.76-.48v.043a3.913 3.913 0 003.12 3.827 3.887 3.887 0 01-1.02.129c-.25 0-.502-.015-.738-.067.505 1.543 1.937 2.677 3.64 2.714a7.827 7.827 0 01-4.83 1.66c-.32 0-.626-.013-.932-.052a10.966 10.966 0 005.976 1.748c7.167 0 11.086-5.938 11.086-11.085a9.95 9.95 0 00-.014-.503A7.77 7.77 0 0038 21.828z"/></symbol>
<symbol id="icon-user-circle" viewBox="0 0 24 24"><use xlink:href="#def-user-circle-a" transform="translate(-1244 -22)"/></symbol>
<symbol id="icon-vb" viewBox="0 0 25 27"><use xlink:href="#def-vb-a" transform="translate(-931 -270)"/></symbol>
<symbol id="icon-view-list" viewBox="0 0 15 15"><path d="M0 6V0h15v6zm0 9V9h15v6z"/></symbol>
<symbol id="icon-view-tile" viewBox="0 0 15 15"><path d="M0 6V0h6v6zm9 0V0h6v6zm0 9V9h6v6zm-9 0V9h6v6z"/></symbol>
<symbol id="icon-vk" viewBox="0 0 22 14"><path d="M10.61 13.8h1.3s.39-.04.59-.27c.19-.2.18-.59.18-.59s-.02-1.8.78-2.07c.8-.26 1.82 1.75 2.91 2.52.81.58 1.44.46 1.44.46l2.89-.05s1.52-.09.8-1.33c-.06-.1-.42-.92-2.15-2.59-1.82-1.75-1.58-1.47.61-4.5 1.33-1.84 1.87-2.97 1.7-3.45-.16-.46-1.14-.34-1.14-.34l-3.26.02s-.24-.03-.42.08-.29.36-.29.36-.52 1.43-1.2 2.64c-1.46 2.57-2.04 2.7-2.27 2.54-.56-.37-.42-1.49-.42-2.28 0-2.49.36-3.52-.71-3.79A5.26 5.26 0 0010.43 1c-1.16-.01-2.15.01-2.7.29-.38.19-.66.61-.49.63.22.03.71.14.97.51.33.47.32 1.53.32 1.53s.19 2.92-.45 3.29c-.44.25-1.04-.26-2.34-2.59-.66-1.19-1.16-2.5-1.16-2.5s-.1-.25-.27-.38c-.21-.16-.5-.21-.5-.21l-3.1.02s-.47.01-.64.22c-.15.19-.01.58-.01.58s2.43 5.89 5.17 8.87c2.52 2.72 5.38 2.54 5.38 2.54z"/></symbol>
<symbol id="icon-vk2-mob" viewBox="0 0 34 34"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.79 21.913h.947a.77.77 0 00.436-.201.795.795 0 00.13-.459s-.016-1.399.573-1.608c.588-.209 1.336 1.351 2.13 1.954.297.259.68.383 1.063.346l2.123-.032s1.116-.073.589-1.03a7.642 7.642 0 00-1.582-2.002c-1.337-1.35-1.153-1.134.451-3.473.978-1.424 1.367-2.3 1.245-2.67a.866.866 0 00-.832-.257l-2.4.016a.463.463 0 00-.305.056.702.702 0 00-.214.282 15.134 15.134 0 01-.886 2.042c-1.062 1.978-1.49 2.082-1.665 1.962-.405-.29-.306-1.15-.306-1.77 0-1.913.268-2.717-.511-2.926a4.053 4.053 0 00-1.123-.12 4.804 4.804 0 00-1.987.225c-.275.144-.48.466-.351.49.273.03.524.167.703.386.165.37.246.774.237 1.182 0 0 .145 2.26-.329 2.54-.32.194-.764-.2-1.719-1.993a17.581 17.581 0 01-.848-1.938.803.803 0 00-.198-.29.84.84 0 00-.367-.16l-2.276.016a.723.723 0 00-.466.169.581.581 0 00-.016.442s1.788 4.559 3.805 6.859c.99 1.217 2.427 1.931 3.95 1.962z"/></symbol>
<symbol id="icon-vk2" viewBox="0 0 56 56"><path fill-rule="evenodd" clip-rule="evenodd" d="M28.274 34.074h1.25c.213-.024.413-.117.574-.265.117-.177.177-.39.172-.605 0 0-.02-1.845.755-2.12.776-.276 1.763 1.78 2.811 2.576.391.342.895.506 1.4.456l2.802-.042s1.47-.096.775-1.358a10.079 10.079 0 00-2.085-2.64c-1.763-1.782-1.522-1.495.594-4.582 1.29-1.877 1.804-3.033 1.642-3.52a1.143 1.143 0 00-1.098-.34l-3.163.021a.61.61 0 00-.403.075.925.925 0 00-.282.37 19.972 19.972 0 01-1.17 2.694c-1.4 2.61-1.964 2.747-2.196 2.588-.534-.382-.403-1.516-.403-2.333 0-2.524.353-3.584-.675-3.86a5.345 5.345 0 00-1.48-.16 6.336 6.336 0 00-2.62.298c-.363.19-.635.615-.464.646.36.039.691.221.927.51.218.487.325 1.02.312 1.558 0 0 .192 2.98-.433 3.352-.423.254-1.007-.265-2.267-2.63a23.184 23.184 0 01-1.118-2.556 1.06 1.06 0 00-.262-.382 1.109 1.109 0 00-.484-.212l-3.002.021a.953.953 0 00-.615.223.767.767 0 00-.02.583s2.358 6.013 5.018 9.046c1.305 1.606 3.2 2.548 5.209 2.588z"/></symbol>
<symbol id="icon-yandex" viewBox="0 0 5 11"><path d="M4.847 0H3.259C1.7 0 .376 1.169.376 3.438c0 1.36.64 2.364 1.783 2.86L.028 10.092c-.07.123 0 .22.111.22h.99c.083 0 .139-.028.166-.097L3.231 6.49h.697v3.726c0 .041.041.097.097.097h.864c.083 0 .111-.042.111-.11V.138C5 .04 4.944 0 4.847 0zm-.92 5.61h-.584c-.92 0-1.81-.66-1.81-2.31 0-1.719.835-2.42 1.684-2.42h.71v4.73z" fill-rule="nonzero"/></symbol>
<symbol id="icon-ynadex" viewBox="0 0 5 10"><use xlink:href="#def-ynadex-a" transform="translate(-468 -10321)"/></symbol>
<symbol id="icon-ytube" viewBox="0 0 27 20"><use xlink:href="#def-ytube-a" transform="translate(-1332 -335)"/></symbol>
</svg>
<div class="header-banner topBanner" data-type="header" style="display: block; position: sticky; top: 0; z-index: 999;">
<a data-source="200345" data-banner="226288" class="universal-notice js-universal-notice-notice universal-notice--webp universal-notice--bitrix universal-notice--active" href="https://skillbox.ru/sale/main/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_banners_header_all_all_skillbox" target="_blank" style="--banner-bg: #5927E9;--banner-color: #fff;--button-font-color: #000000;--button-bg-color: #FFFFFF;--banner-img-left: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.png);--banner-img-left-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_left/602754/f9ac17dd-a1d4-46c6-aa14-4f7b949defd1.webp);--banner-img-center: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-center-mobile: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.png);--banner-img-center-mobile-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_center/602507/232fc4a5-b130-4af2-a629-bdb293a4dd2e.webp);--banner-img-right: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.png);--banner-img-right-webp: url(https://cdn.skillbox.pro/mainsite/banners/promo_picture_right/602755/ad7a7fe5-b8d3-47a3-885b-51a7971c12a9.webp);">
<span class="universal-notice__wrapper">
<b class="universal-notice__title">
Скидка до 55% и 3 курса в подарок
</b>
<span class="universal-timer js-universal-notice-timer js-universal-notice-active">
<span class="universal-timer__days js-universal-notice-days">2 дня</span>
<span class="js-universal-notice-hours">13</span>
:<span class="js-universal-notice-minutes">30</span>
:<span class="js-universal-notice-seconds">09</span>
</span>
<span class="universal-notice__button">Выбрать курс</span>
</span>
</a><script>
document.addEventListener('DOMContentLoaded', () => {
// Установите конечную дату
const deadline = new Date();
deadline.setDate(5);
deadline.setHours(0, 0, 0);
// Найдите элементы DOM
var timer = document.querySelector('.universal-timer');
const elDays = timer.querySelector('.js-universal-notice-days');
const elHours = timer.querySelector('.js-universal-notice-hours');
const elMinutes = timer.querySelector('.js-universal-notice-minutes');
const elSeconds = timer.querySelector('.js-universal-notice-seconds');
// Функция обновления таймера
const updateTimer = () => {
const now = new Date();
let diff = Math.max(0, deadline - now);
if (diff === 0) {
let lastDayOfMonth = new Date(now.getFullYear(), now.getMonth() + 1, 0);
let lastDay = lastDayOfMonth.getDate();
if (lastDay - now.getDate() < 4) {
deadline.setMonth(deadline.getMonth() + 1, 1);
} else {
deadline.setDate(deadline.getDate() + 4);
}
diff = Math.max(0, deadline - now);
}
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(diff / (1000 * 60 * 60 * 24));
var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)).toString();
var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)).toString();
var seconds = Math.floor((diff % (1000 * 60)) / 1000).toString();
if (timer) {
let dayTitles = ['день', 'дня', 'дней'];
let daySuffix = dayTitles[(days % 100 > 4 && days % 100 < 20) ? 2 : [2, 0, 1, 1, 1, 2][days % 10 < 5 ? days % 10 : 5]]
elDays.innerHTML = days + ' ' + daySuffix;
elHours.innerHTML = hours.padStart(2, '0');
elMinutes.innerHTML = minutes.padStart(2, '0');
elSeconds.innerHTML = seconds.padStart(2, '0');
}
};
updateTimer();
const timerId = setInterval(updateTimer, 1000);
});
</script>
<style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{position:sticky;z-index:5;top:0;box-sizing:border-box;text-decoration:none;display:none;justify-content:space-between;overflow:hidden;color:var(--banner-color);background-color:var(--banner-bg);font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:opacity .25s ease-in-out}.universal-notice--active{display:flex}.universal-notice--bitrix{z-index:1000}.universal-notice *,.universal-notice ::after,.universal-notice ::before{box-sizing:inherit}.universal-notice::after,.universal-notice::before{display:none;width:194px;height:56px;content:"";background-size:194px 56px;background-repeat:no-repeat}.universal-notice--no-webp::before{background-image:var(--banner-img-left)}.universal-notice--no-webp::after{background-image:var(--banner-img-right)}.universal-notice--webp::before{background-image:var(--banner-img-left-webp)}.universal-notice--webp::after{background-image:var(--banner-img-right-webp)}.universal-notice--new-design{position:static;margin:4px;border-radius:16px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:166px;height:48px;background-size:166px 48px}.universal-notice__wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;padding:12px;width:100%}.universal-notice--new-design .universal-notice__wrapper::after{height:48px}.universal-notice__title{font-weight:500;font-size:15px;line-height:16px}.universal-notice--new-design .universal-notice__title{font-size:14px;line-height:15px}.universal-timer{display:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;font-size:24px;line-height:26px}.universal-notice--new-design .universal-timer{font-size:22px;line-height:24px}.universal-timer__days{margin-right:8px}.universal-notice__button{grid-column:2/3;padding:6px 16px;border-radius:6px;color:var(--button-font-color);background-color:var(--button-bg-color);font-weight:500;font-size:14px;line-height:20px}.universal-notice-sticky{position:fixed;z-index:5;top:0;left:0;width:100%;padding:11px 8px;color:var(--banner-color);background-color:var(--banner-bg);text-align:center;transition:transform .3s ease-in-out;will-change:transform;transform:translateY(-200%)}.universal-notice-sticky--show{transform:translateY(0)}@media (min-width:360px) and (max-width:0px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:360px){.universal-notice__wrapper{padding:0 12px;grid-template-columns:1fr 56px auto}.universal-notice__wrapper::after{grid-column:2/3;grid-row:1/2;width:100%;height:56px;background-size:cover;background-repeat:no-repeat;content:""}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 48px auto}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-mobile-webp)}.universal-notice__button{grid-column:3/4}}@media (min-width:768px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:768px) and (max-width:0px){.universal-notice::before{background-position:right center;flex-shrink:0;display:block}.universal-notice--no-webp .universal-notice__wrapper::after{background-image:var(--banner-img-center)}.universal-notice--webp .universal-notice__wrapper::after{background-image:var(--banner-img-center-webp)}}@media (min-width:1024px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1024px) and (max-width:0px){.universal-notice::after,.universal-notice::before{width:250px;height:72px;background-size:250px 72px}.universal-notice--new-design{height:64px;border-radius:32px}.universal-notice--new-design::after,.universal-notice--new-design::before{width:226px;height:64px;background-size:226px 64px}.universal-notice__wrapper{grid-template-columns:1fr 72px auto;grid-gap:24px;padding-right:16px;padding-left:24px}.universal-notice__wrapper::after{height:72px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px auto}.universal-notice--new-design .universal-notice__wrapper::after{height:64px}.universal-notice__title{font-size:24px;line-height:26px}.universal-notice--new-design .universal-notice__title{font-size:22px;line-height:24px}.universal-notice__button{padding:10px 24px;border-radius:8px}.universal-notice-sticky{padding:14px 24px}}@media (min-width:1280px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1280px) and (max-width:0px){.universal-notice::before{flex-shrink:1}.universal-notice::after{background-position:left center;display:block}.universal-notice__wrapper{grid-template-columns:1fr 72px minmax(202px,auto) auto;min-width:940px;max-width:1020px;padding-right:24px}.universal-notice--new-design .universal-notice__wrapper{grid-template-columns:1fr 64px minmax(202px,auto) auto}.universal-timer.js-universal-notice-active{display:flex}.universal-notice__timer-nuxt{display:flex}.universal-notice__button{grid-column:4/5}}@media (min-width:1400px) and (max-width:0px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}@media (min-width:1400px){.universal-notice::before{flex-shrink:0}.universal-notice::after{flex-shrink:0}}</style> </div>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
window.TopBanner = true;
});
$(document).ready(function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-show',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
});
$(document).on('click', '.header-banner', function () {
$.ajax({
url: '/local/ajax/advert.php',
type: 'POST',
data: {
'type': 'top-banner-click',
'id': 226288,
'section_id': 0,
},
success: function (result) {
}
});
var page = window.location;
var $article = $('section[data-article-text]');
var pageId = $article.data('articleid');
if(pageId === undefined)
{
pageId = 0;
}
window.dataLayer.push({
'event': 'go_to_course',
'courseID': 226288,
'page': page,
'pageID': pageId
});
});
</script>
<header class="header">
<div id="menu" class="header__wrapper container">
<div class="header__logo link-active">
<a href="/media/" class="header__media-main-link">
<img src="/local/templates/media/images/logo/skillbox-media.svg" alt="Skillbox"/>
</a>
<a href="/media/code/" class="header__media-category-link">
<span class="header__media-category js-category hidden"></span>
</a>
</div>
<a href="/media/about-media/" v-if="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link--about" target="_blank" style="display: none">
Про медиа
</a>
<button v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="toggle-menu header__toggle toggle-menu--course"
@click="openCourseMenu()"
:class="{ 'toggle-menu--active': isOpenCourseMenu }"
style="display: none">
Онлайн-курсы
<svg width="13" height="12" viewBox="0 0 13 12" fill="none" xmlns="http://www.w3.org/2000/svg"
:class="{
'animated-chevron--default': isOpenCourseMenu,
'animated-chevron--active animated-chevron--default': ! isOpenCourseMenu
}"
class="animated-chevron toggle-menu__arrow select-arrow select-arrow--small">
<line x1="6.48415" y1="5.92242" x2="11.4909" y2="10.9291" stroke="currentColor" stroke-width="1.78"
class=" animated-chevron__line animated-chevron__line1 animated-chevron__line1--default"></line>
<line x1="6.3701" y1="5.9224" x2="11.3768" y2="0.915678" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
<line x1="1.36337" y1="10.9291" x2="6.3701" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line animated-chevron__line2 animated-chevron__line2--default"></line>
<line x1="1.47743" y1="0.915681" x2="6.48415" y2="5.9224" stroke="currentColor" stroke-width="1.78"
class="animated-chevron__line"></line>
</svg>
</button>
<a href="https://skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=button_main_skillbox&utm_term=mainskillbox" v-if="!isMobile" v-show="!isMobile" rel="nofollow" class="menu-nav__link menu-nav__link-ml0 menu-nav__link--main" target="_blank" style="display: none">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<div v-if="isOpenCourseMenu && !isMobile" class="menu-block menu-block--desktop" @click="closeCourseMenu($event)" style="display: none">
<div class="menu-block__wrapper menu-block__wrapper--desktop">
<div class="menu-block__content vue-container">
<span class="menu-block__title">
Направления обучения
</span>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/?utm_source=media&utm_medium=button&utm_campaign=button_courses_all&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/?utm_source=media&utm_medium=button&utm_campaign=button_courses_code&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/?utm_source=media&utm_medium=button&utm_campaign=button_courses_design&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management?utm_source=media&utm_medium=button&utm_campaign=button_courses_management&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing?utm_source=media&utm_medium=button&utm_campaign=button_courses_marketing&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games?utm_source=media&utm_medium=button&utm_campaign=button_courses_games&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia?utm_source=media&utm_medium=button&utm_campaign=button_courses_multimedia&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Кино и Музыка
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology?utm_source=media&utm_medium=button&utm_campaign=button_courses_psychology&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/health?utm_source=media&utm_medium=button&utm_campaign=button_courses_health&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Здоровье
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/spo/?utm_source=media&utm_medium=button&utm_campaign=button_courses_spo&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Цифровой колледж
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/?utm_source=media&utm_medium=button&utm_campaign=button_courses_general-development&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/?utm_source=media&utm_medium=button&utm_campaign=button_courses_engineering&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/?utm_source=media&utm_medium=button&utm_campaign=button_courses_english&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/?utm_source=media&utm_medium=button&utm_campaign=button_courses_other&utm_term=button" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
</div>
</div>
</div>
<div v-show="isOpenMenu" class="menu-block" @click="closeMenu($event)" style="display: none">
<div class="menu-block__wrapper">
<div class="menu-block__content vue-container">
<h2 class="menu-block__header">Редакции</h2>
<div class="tab-nav" data-tab-parent="" data-action="index">
<div class="tab-nav__item">
<a class="tab-active" data-tab-name="media_nav" data-section-id="0" data-code="All directions" href="/media/">
<img src="/local/templates/media/images/common/menu-icon-mobile-1.png" alt=""/>
Все
</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/history/">
<img src="/local/templates/media/images/common/menu-icon-mobile-19.png"
alt=""/>
Истории</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="8"
data-code="Design"
href="/media/design/">
<img src="/local/templates/media/images/common/menu-icon-mobile-2.png" alt=""/>
Дизайн</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="10"
data-code="Code"
href="/media/code/">
<img src="/local/templates/media/images/common/menu-icon-mobile-3.png" alt=""/>
Код</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="18"
data-code="GameDev"
href="/media/gamedev/">
<img src="/local/templates/media/images/common/menu-icon-mobile-4.png" alt=""/>
Геймдев</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="21"
data-code="Business"
href="/media/business/">
<img src="/local/templates/media/images/common/menu-icon-mobile-9.png" alt=""/>
Бизнес</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="9"
data-code="Marketing"
href="/media/marketing/">
<img src="/local/templates/media/images/common/menu-icon-mobile-5.png" alt=""/>
Маркетинг</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="11"
data-code=""
href="/media/management/">
<img src="/local/templates/media/images/common/menu-icon-mobile-6.png" alt=""/>
Управление</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="29"
data-code=""
href="/media/cinemusic/">
<img src="/local/templates/media/images/common/menu-icon-mobile-22.png" alt=""/>
Кино</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="36"
data-code=""
href="/media/music/">
<img src="/local/templates/media/images/common/menu-icon-mobile-23.png" alt=""/>
Музыка</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="34"
data-code=""
href="/media/photo/">
<img src="/local/templates/media/images/common/menu-icon-mobile-20.png" alt=""/>
Проектная фотография</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="17"
data-code="Development"
href="/media/growth/">
<img src="/local/templates/media/images/common/menu-icon-mobile-7.png" alt=""/>
Развитие</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="33"
data-code=""
href="/media/health/">
<img src="/local/templates/media/images/common/menu-icon-mobile-16.png" alt=""/>
Здоровье</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="32"
data-code=""
href="/media/money/">
<img src="/local/templates/media/images/common/menu-icon-mobile-17.png" alt=""/>
Деньги</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="22"
data-code="Education"
href="/media/education/">
<img src="/local/templates/media/images/common/menu-icon-mobile-8.png" alt=""/>
Образование</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="31"
data-code=""
href="/media/edtech/">
<img src="/local/templates/media/images/common/menu-icon-mobile-11.png" alt=""/>
EdTech</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="30"
data-code=""
href="/media/corptrain/">
<img src="/local/templates/media/images/common/menu-icon-mobile-10.png" alt=""/>
Корп. обучение</a>
</div>
<div class="tab-nav__item">
<a class=""
data-tab-name="media_nav"
data-section-id="35"
data-code=""
href="/media/skillbox-blog/">
<img src="/local/templates/media/images/common/menu-icon-mobile-21.png" alt=""/>
Блог Skillbox</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/media/glossary/">
<img src="/local/templates/media/images/common/menu-icon-mobile-18.png"
alt=""/>
Глоссарий</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="/media/topic/specials/">
<img src="/local/templates/media/images/common/menu-icon-mobile-13.png"
alt=""/>
Спецпроекты</a>
</div>
<div class="tab-nav__item tab-nav__item--custom tab-nav__item--spec"
data-nav-parent-item>
<a
data-tab-name="media_nav"
data-code=""
href="https://skillbox.ru/course/career-guide-free/">
<img src="/local/templates/media/images/common/menu-icon-mobile-15.png"
alt=""/>
Профориентация</a>
</div>
</div>
<h2 class="menu-block__header">Онлайн-курсы</h2>
<ul class="menu-directions menu-block__direction">
<li class="menu-directions__item">
<a href="https://skillbox.ru/courses/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="All directions">
Все направления
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/code/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Code">
Программирование
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/design/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Design">
Дизайн
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/marketing/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Marketing">
Маркетинг
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/management/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Management">
Управление
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/games/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="GameDev">
Игры
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/multimedia/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="">
Мультимедиа
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/psychology/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Development">
Психология
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/general-development/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Education">
Общее развитие
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/engineering/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="engineering">
Инженерия
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/english/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="english">
Английский язык
</a>
</li>
<li class="menu-directions__item">
<a href="https://skillbox.ru/other/" target="_blank"
class="ui-tab ui-tab--link menu-directions__tab ui-tab--small"
data-code="Other">
Другое
</a>
</li>
</ul>
<a href="/media/about-media/" rel="nofollow" class="menu-nav__link">
Про медиа
</a>
<a href="https://skillbox.ru/" rel="nofollow" class="menu-nav__link">
Главная Skillbox
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.9375 10.0618L9.9161 4.08203" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.93811 3.93665H10.0631V10.0616" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
</div>
</div>
</div>
<button v-if="isMobile" class="menu-toggle"
@click="openMenu()"
:class="{ 'menu-toggle--opened': isOpenMenu }" style="opacity: 0">
<span v-if="isOpenMenu" class="menu-toggle__line"></span>
<svg v-if="!isOpenMenu" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M24 5.5H0V4H24V5.5ZM24 11.5H0V13H24V11.5ZM24 19H0V20.5H24V19Z" fill="black"/>
</svg>
</button>
</div>
<script>
BX.Vue.create({
el: '#menu',
data: {
isOpenMenu: false,
isOpenCourseMenu: false,
isMobile: false,
isSubOpen: false,
display: 'none'
},
computed: {
isMobile() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
return w < 1024;
}
},
methods: {
openMenu() {
this.isOpenMenu = !this.isOpenMenu;
document.getElementsByTagName('body')[0].classList.toggle('scroll-locked');
window.addEventListener('keyup', this.closeMenu);
},
closeMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeMenu);
}
},
openCourseMenu() {
this.isOpenCourseMenu = !this.isOpenCourseMenu;
if (this.isOpenCourseMenu) {
document.getElementsByTagName('body')[0].classList.add('scroll-locked');
window.addEventListener('keyup', this.closeCourseMenu);
} else {
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
closeCourseMenu(event) {
if (event.target.classList.contains('menu-block') || event.keyCode === 27) {
this.isOpenCourseMenu = false;
document.getElementsByTagName('body')[0].classList.remove('scroll-locked');
window.removeEventListener('keyup', this.closeCourseMenu);
}
},
openSub() {
this.isSubOpen = !this.isSubOpen;
},
isMobileFn() {
const w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
this.isMobile = (w < 1024);
}
},
created() {
window.addEventListener("resize", this.isMobileFn);
document.querySelector('.menu-block').style.display = '';
document.querySelector('.menu-toggle').style.opacity = '1';
document.querySelector('.menu-nav__link').style.display = '';
this.display = 'block';
this.isMobileFn();
},
destroyed() {
window.removeEventListener("resize", this.isMobileFn);
}
});
</script>
</header>
<main class="content">
<div class="page style-update">
<div class="page-wrap">
<style>
.article-inner .rr-widget__title {
padding-top: 0 !important;
}
.article-inner div[data-retailrocket-markup-block] {
margin-top: -32px;
display: none;
}
.article-inner {
font-family: 'Graphik';
}
</style>
<div class="under_header_banner" data-type="under_header"><!-- Yandex.RTB R-A-13443663-10 -->
<div id="yandex_rtb_R-A-13443663-10"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-13443663-10",
"renderTo": "yandex_rtb_R-A-13443663-10"
})
})
</script>
</div> <div data-area="article" data-title="Изучаем операторы сравнения &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=, ==, !=, instanceof. Условные конструкции if-else, switch, тернарный оператор. Всё закрепляем на примерах. / Skillbox Media" class=" noFullClass">
<div class="article-inner">
<section class="top-section-detail-page ">
<div class="container">
<div class="article-preview-info">
<div class="article-preview-info__tags ">
<div class="tag article-preview-info__tag">
<a href="/media/code/"
class="tag-item programming">
Код </a>
</div>
</div>
<div class="tag article-preview-info__tag">
<a href="/media/base/code/java/">
<div class="tag-item programming">
Java </div>
</a>
</div>
<a class="info-hashtag article-preview-info__hashtag" href="/media/base/">
#База знаний </a>
<ul class="info article-preview__info-box">
<li class="info-item"> <time class="info-text" datatime="#">9 мар 2021</time></li>
<li class="info-item hidden">
<span class="info-icon"><img src="/local/templates/media/images/icons/like.svg" alt=""></span>
<span class="info__text js-article-like-value">0</span>
</li>
</ul>
</div>
<div class="row">
<div class="top-section-detail-page__title-block col-xl-9 col-lg-10">
<div class="article-preview">
<h1 class="article-preview__title">Тип Boolean и операторы сравнения в Java</h1>
<p class="article-preview__description">Узнаём про булев тип, операции сравнения, условные конструкции if-else, switch и тернарный оператор. Осмысляем instanceof. Всё подробно и с примерами.</p>
</div>
</div>
</div>
</div>
</section>
<section data-article-text
data-articleId="200345"
data-courseId="3869"
>
<div class="container">
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div> <!-- //share -->
</noindex>
<div class="row">
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-poster">
<picture >
<img src="https://248006.selcdn.ru/main/iblock/c4e/c4ef7c9986a06c3b0ce9ad155572fa8a/bfa91cfcbae3d0e9f6e21c17083917b2.png" itemprop='image' class='hidden-xs' />
</picture> <picture >
<img src="https://248006.selcdn.ru/main/iblock/c4e/c4ef7c9986a06c3b0ce9ad155572fa8a/bfa91cfcbae3d0e9f6e21c17083917b2.png" itemprop='image' class='visible-xs' />
</picture> </div>
<noindex>
<p class="article-poster-text" data-nosnippet>
</p>
</noindex>
</div>
<div class="col-xl-3 col-lg-4 col-author">
<div class="article-author">
<div class="article-author__image">
<a href="/media/authors/artem-avdeev/">
<img src="https://248006.selcdn.ru/main/iblock/cec/cec53c38a38c5f5b0c3ae9f212c86b5b/c56ca71fb5fed6e6c67e0291835c7dcc.png" alt="Артём Авдеев">
</a>
</div>
<div class="article-author__info">
<div class="article-author__name">
Артём Авдеев </div>
<div class="article-author__description">
Java-разработчик, преподаёт в Skillbox, осваивает машинное обучение. </div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row flex-row-rev">
<div class="col-xl-3 col-lg-4 col-author">
<div class="js-article-banner" data-article-banner-mobile data-type="side_mounted" data-article-banner-sticky-start>
<!--AdFox START-->
<!--yandex_skillbox.media-->
<!--Площадка: Skillbox / Сквозной для застройщика Легенда / Боковой баннер сквозной для застройщика Легенда-->
<!--Категория: <не задана>-->
<!--Тип баннера: Media banner-->
<div id="adfox_176131540100027244"></div>
<script>
window.yaContextCb.push(()=>{
Ya.adfoxCode.create({
ownerId: 11649869,
containerId: 'adfox_176131540100027244',
params: {
p1: 'dkugb',
p2: 'p'
}
})
})
</script> </div>
<div class="js-article-banner" data-article-banner-mobile data-type="vertical" data-article-banner-sticky-end></div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="container container--setka">
<div class="js-article-banner" data-type="top"></div>
<div class="article-detail-text__setka" data-detail-text>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml encoding="utf-8" ?><html><body><div class="stk-post stk-layout_12col_18068 stk-theme_26309" data-ui-id="post" data-reset-type="class" data-editor-version="3.0.0-rc12" data-stk='{"images":[{"id":10122,"alt":"","caption":""}]}' data-layout-type="limited"><div class="stk-theme_26309__mb_15 stk-grid__layout_reverse stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset"><span class="stk-reset" data-stk-footnote-link="fnrMHRg">Boolean</span></strong> — это тип данных, переменные которого принимают одно из значений:</p><ul class=" stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-list-item stk-reset " data-ce-tag="list-item"><strong class="stk-reset">true</strong> (истина, «да», логическая единица «<strong class="stk-reset">1</strong>»);</li><li class="stk-list-item stk-reset " data-ce-tag="list-item"><strong class="stk-reset">false</strong> (ложь, «нет», логический ноль «<strong class="stk-reset">0</strong>»).</li></ul><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Булевы переменные в Java создают так:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">boolean</span> a = <span class="hljs-keyword" style="color: #96cbfe;">true</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> b = <span class="hljs-keyword" style="color: #96cbfe;">false</span>;</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Значение типа <u class="stk-reset">boolean</u> возвращают операции сравнения, логические операции и их сочетания. Выражения с ними — это по сути <strong class="stk-reset">условные высказывания</strong>, которые могут быть правдивы или нет.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-theme_26309__style_large_header stk-reset" data-ce-tag="paragraph">Операция сравнения</h2><p class="stk-reset" data-ce-tag="paragraph">В каждой операции сравнения участвуют два <span class="stk-reset" data-stk-footnote-link="fnyTQgJ">операнда</span>. А выглядит она как обычное неравенство в математике. Например: <u class="stk-reset">a > b</u>.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Операция сравнения возвращает:</p><ul class=" stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-list-item stk-reset " data-ce-tag="list-item">значение true («истина»), если высказывание с оператором правдивое (условие выполняется),</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">и false («ложь») — если высказывание с оператором ложное (условие не выполняется).</li></ul><p class="stk-reset" data-ce-tag="paragraph">Например, мы хотим сравнить в Java значения переменных <u class="stk-reset">a</u> и <u class="stk-reset">b</u>. Для этого используем оператор <u class="stk-reset">></u>, который возвращает булево значение (true или false).</p><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">a > b</u> равно true, когда значение переменной <u class="stk-reset">a</u> больше значения переменной <u class="stk-reset">b</u> (операнд слева от <u class="stk-reset">></u> больше правого), а иначе — false.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пример:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> a = <span class="hljs-number" style="color: #ff73fd;">4</span>;
<span class="hljs-keyword" style="color: #96cbfe;">int</span> b = <span class="hljs-number" style="color: #ff73fd;">3</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> c = a > b;
System.out.println(c);
--OUTPUT> true
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Оператор <u class="stk-reset">></u> сравнил операнд слева с операндом справа. Результат сравнения мы присвоили булевой переменной <u class="stk-reset">c</u>.</p><p class="stk-reset" data-ce-tag="paragraph">Так как 4 > 3 (высказывание правдиво), значение переменной <u class="stk-reset">c</u> после выполнения кода станет равным true.</p></div></div><div class="stk-grid stk-theme_26309__mb_15" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph">Операторы сравнения в Java</h2><p class="stk-reset" data-ce-tag="paragraph">Один оператор сравнения мы рассмотрели выше, а всего в Java их шесть:</p><table class="stk-table stk-reset stk-table--zebra" data-responsive-type="cards" data-stk-css="stkiXZxX" data-ce-tag="table"><colgroup><col class="stk-reset" data-stk-css="stkAnQbI" data-stk-id="48"><col class="stk-reset align-center" data-stk-css="stkAqWEt" data-stk-id="49"><col class="stk-reset align-center" data-stk-css="stk2kZdt" data-stk-id="50"><col class="stk-reset" data-stk-css="stkKVzYj" data-stk-id="51"></colgroup><thead class="stk-reset"><tr class="stk-reset stk-table-row"><th class="stk-reset stk-table-cell" data-ce-tag="th"><strong class="stk-reset">Оператор сравнения</strong></th><th class="stk-reset stk-table-cell align-center" data-ce-tag="th"><strong class="stk-reset">Обозначение в Java</strong></th><th class="stk-reset stk-table-cell align-center" data-ce-tag="th"><strong class="stk-reset">Пример операции</strong> </th><th class="stk-reset stk-table-cell" data-ce-tag="th"><strong class="stk-reset">Результат операции</strong></th></tr></thead><tbody class="stk-reset"><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Меньше</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java"><</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a < b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева меньше правого, иначе false</td></tr><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Больше</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java">></td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a > b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева больше правого, иначе false</td></tr><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Меньше или равно</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java"><=</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a <= b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева <em class="stk-reset">меньше</em> правого или они <em class="stk-reset">равны</em>, иначе false</td></tr><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Больше или равно</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java">>=</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a >= b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева <em class="stk-reset">больше</em> правого или <em class="stk-reset">равен</em> ему, иначе false</td></tr><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Равно</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java">==</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a == b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева <em class="stk-reset">равен</em> операнду справа</td></tr><tr class="stk-reset stk-table-row"><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Оператор сравнения">Не равно</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Обозначение в Java">!=</td><td class="valign-middle stk-reset stk-table-cell align-center" data-ce-tag="td" data-cell-header="Пример операции">a != b</td><td class="valign-middle stk-reset stk-table-cell" data-ce-tag="td" data-cell-header="Результат операции">true, если операнд слева <em class="stk-reset">не равен</em> операнду справа</td></tr></tbody></table><p class="stk-reset stk-theme_26309__mb_05" data-ce-tag="paragraph">Примеры:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> a = <span class="hljs-number" style="color: #ff73fd;">6</span>;
<span class="hljs-keyword" style="color: #96cbfe;">int</span> b = <span class="hljs-number" style="color: #ff73fd;">7</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> c = a < b;
System.out.println(c);
--OUTPUT> true
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> a = <span class="hljs-number" style="color: #ff73fd;">6</span>;
<span class="hljs-keyword" style="color: #96cbfe;">int</span> b = <span class="hljs-number" style="color: #ff73fd;">7</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> c = a >= b;
System.out.println(c);
--OUTPUT> false
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div></div></div><div class="stk-grid stk-theme_26309__mb_15" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph">Где нужны значения типа Boolean</h2><p class="stk-reset" data-ce-tag="paragraph">Булевы значения и условные выражения часто используются в условиях операторов ветвления, тернарного оператора и циклов.</p><h3 class=" stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Операторы ветвления</h3><p class="stk-reset" data-ce-tag="paragraph">Оператор ветвления позволяет выбрать и исполнить определённый блок кода в зависимости от срабатывания некоторого условия.</p><p class="stk-reset" data-ce-tag="paragraph">Есть два оператора ветвления (условные конструкции): <u class="stk-reset">if-else</u> и <u class="stk-reset">switch</u>.</p><p class=" stk-theme_26309__mb_05 stk-reset stk-theme_26309__style_accented_text" data-ce-tag="paragraph">Оператор if</p><p class="stk-reset" data-ce-tag="paragraph">Его синтаксис выглядит так:</p><div class="stk-grid" data-ce-tag="grid"><div data-col-width="6" class="stk-grid-col stk-grid-col_last" data-stk-css="stkT7wms" data-ce-tag="grid-col"><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">if (условие) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">//код</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">} else {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">//код</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">}</p></div><div data-col-width="6" class="stk-grid-col stk-grid-col_empty" data-ce-tag="grid-col"><p class="ce-element--empty stk-element_no-text stk-reset" data-ce-tag="paragraph"></p></div></div><p class="stk-reset" data-ce-tag="paragraph">В круглых скобках после <u class="stk-reset">if</u> указывают условное выражение (высказывание). Если оно истинно (то есть результат его вычисления равен true), то выполняется код в фигурных скобках после условия, иначе выполняется код по ветке <u class="stk-reset">else</u> (если она есть).</p><p class="stk-reset stk-theme_26309__mb_05" data-ce-tag="paragraph">Примеры:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (<span class="hljs-number" style="color: #ff73fd;">3</span> > <span class="hljs-number" style="color: #ff73fd;">2</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Высказывание в скобках правдивое."</span>);
}
--OUTPUT> Высказывание в скобках правдивое.</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Проверяем условие в круглых скобках:</p><p class="stk-reset" data-ce-tag="paragraph"><u class="stk-reset">3 > 2</u>?</p><p class="stk-reset" data-ce-tag="paragraph">Если да, то в консоль выводим: <em class="stk-reset">«<u class="stk-reset">Высказывание в скобках правдивое</u>»</em>, иначе ничего не выводим.</p><p class="stk-reset" data-ce-tag="paragraph">Так как 3 и правда больше 2, то в консоли появилось наше сообщение.</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (<span class="hljs-number" style="color: #ff73fd;">3</span> < <span class="hljs-number" style="color: #ff73fd;">2</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Высказывание в скобках правдивое."</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Высказывание в скобках ложное."</span>);
}
--OUTPUT> Высказывание в скобках ложное.
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Печатаем «<u class="stk-reset">Высказывание в скобках правдивое</u>», если результат вычислений в круглых скобках = true. В ином случае выводим: «<u class="stk-reset">Высказывание в скобках ложное</u>».</p><p class="stk-reset" data-ce-tag="paragraph">Так как выражение <u class="stk-reset">(3 < 2)</u> возвращает false, то и в консоли видим: «<u class="stk-reset">Высказывание в скобках ложное</u>».</p><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Вложенные конструкции</h3><p class="stk-reset" data-ce-tag="paragraph">Допустим, мы хотим проверить некое условие, и если оно не выполнилось — проверить другое условие и так далее. Сделать это можно двумя способами.</p><p class="stk-reset stk-theme_26309__mb_05" data-ce-tag="paragraph"><strong class="stk-reset">1. Вложенный</strong> <strong class="stk-reset"><u class="stk-reset">if</u></strong></p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Синтаксис тут такой:</p><div class="stk-grid" data-ce-tag="grid"><div data-col-width="8" class="stk-grid-col stk-grid-col_last" data-stk-css="stkqPxaQ" data-ce-tag="grid-col"><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">if (условие1) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие1 выполнено;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">} else {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">if (условие2) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие2 выполнено;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph"><…></p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">else {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если все предыдущие условия не выполнились;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p></div><div data-col-width="4" class="stk-grid-col stk-grid-col_empty" data-ce-tag="grid-col"><p class="ce-element--empty stk-element_no-text stk-reset" data-ce-tag="paragraph"></p></div></div><style data-stk-css="stkqPxaQ" class="" media="all">[data-stk-css="stkqPxaQ"]:not(#stk):not(#stk):not(style){background-color: rgba(255, 255, 255, 1); box-shadow: 0 0 10px rgba(0,0,0,0.2); padding: 20px}</style><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пример:</p><div class="stk-container sklbx-browser stk-theme_26309__mb_15" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">boolean</span> expression1 = <span class="hljs-number" style="color: #ff73fd;">3</span> < <span class="hljs-number" style="color: #ff73fd;">2</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> expression2 = <span class="hljs-number" style="color: #ff73fd;">5</span> > <span class="hljs-number" style="color: #ff73fd;">4</span>;
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (expression1) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Первое выражение правдивое."</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (expression2) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Первое выражение ложное, а второе — правдивое."</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Оба выражения ложные."</span>);
}
}
--OUTPUT> Первое выражение ложное, а второе — правдивое.</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">2. Конструкция</strong> <strong class="stk-reset"><u class="stk-reset">else if</u></strong></p><p class="stk-reset" data-ce-tag="paragraph">Каждое логическое условие записывают через комбинацию <u class="stk-reset">else if</u>, после которых в круглых скобках идёт альтернативное условие. Последний вариант (если ни одно из условий не сработало) записывается через <u class="stk-reset">else</u> без условия.</p><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Синтаксически это выглядит так:</p><div class="stk-grid" data-ce-tag="grid"><div data-col-width="9" class="stk-grid-col stk-grid-col_last" data-stk-css="stkzS-eU" data-ce-tag="grid-col"><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">if (условие1) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие1 выполнено;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">else if (условие2) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие2 выполнено;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">else if (условие3) {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие3 выполнено;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph"><…></p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">else {</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">//действия, если условие последнего if тоже не выполнилось;</p><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="paragraph">}</p></div><div data-col-width="3" class="stk-grid-col stk-grid-col_empty" data-ce-tag="grid-col"><p class="ce-element--empty stk-element_no-text stk-reset" data-ce-tag="paragraph"></p></div></div><style data-stk-css="stkzS-eU" class="" media="all">[data-stk-css="stkzS-eU"]:not(#stk):not(#stk):not(style){background-color: rgba(255, 255, 255, 1); box-shadow: 0 0 10px rgba(0,0,0,0.2); padding: 20px}</style><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пример:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">boolean</span> statement1 = <span class="hljs-number" style="color: #ff73fd;">3</span> < <span class="hljs-number" style="color: #ff73fd;">2</span>;
<span class="hljs-keyword" style="color: #96cbfe;">boolean</span> statement2 = <span class="hljs-number" style="color: #ff73fd;">5</span> > <span class="hljs-number" style="color: #ff73fd;">4</span>;
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (statement1) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Первое высказывание правдивое."</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (statement2) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Первое высказывание ложное, а второе — правдивое."</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Оба высказывания ложные."</span>);
}
--OUTPUT> Первое высказывание ложное, а второе — правдивое.</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Каждое следующее условие проверяется только в том случае, если предыдущее не выполнилось. Как только найдётся одно правдивое условие (или мы достигнем последнего <u class="stk-reset">else</u>), выполнится код в фигурных скобках после этого условия, а оставшаяся цепочка условий будет пропущена.</p><p class="stk-reset stk-theme_26309__mb_05" data-ce-tag="paragraph">Иногда условий <u class="stk-reset">else if</u> нужно довольно много:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-number" style="color: #ff73fd;">5</span>;
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">1</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">2</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Вторник"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">3</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Среда"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">4</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Четверг"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">5</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Пятница"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">6</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Суббота"</span>);
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> <span class="hljs-keyword" style="color: #96cbfe;">if</span> (dayOfWeekNum == <span class="hljs-number" style="color: #ff73fd;">7</span>) {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span>);
}
--OUTPUT> Пятница
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Такой код сложно воспринимать: увеличение глубины вложенности быстро сделало его запутанным. Для таких случаев придуман оператор <span class="stk-reset" data-stk-footnote-link="fnaERhD">switch</span>.</p><h2 class=" stk-theme_26309__mb_05 stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph">Оператор множественного выбора (switch)</h2><p class="stk-reset" data-ce-tag="paragraph">Он применяется, когда нужно выполнить один из нескольких блоков кода в зависимости от значения аргумента.</p><p class="stk-reset" data-ce-tag="paragraph">Выгода от <u class="stk-reset">switch</u> тем очевиднее, чем больше проверок и вариантов действий нам нужно.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Например:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-number" style="color: #ff73fd;">5</span>;
<span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeekNum) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">1</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">2</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Вторник"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">3</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Среда"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">4</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Четверг"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">5</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Пятница"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">6</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Суббота"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">7</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
}
--OUTPUT> Пятница
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">В круглых скобках указывается аргумент для <u class="stk-reset">switch</u>, а в каждом блоке <u class="stk-reset">case</u> — чему этот аргумент должен равняться, чтобы выполнился код после двоеточия.</p><p class="stk-reset" data-ce-tag="paragraph">В нашем случае выполнится <u class="stk-reset">case 5</u>, так как переменная <u class="stk-reset">dayOfWeekNum</u> (порядок дня в неделе) равна 5.</p><p class="stk-reset" data-ce-tag="paragraph">В конце каждого блока <u class="stk-reset">case</u> мы ставим <u class="stk-reset">break</u>. Если этого не сделать, то выполнится также код из следующего блока <u class="stk-reset">case</u> и так далее.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Например:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-number" style="color: #ff73fd;">6</span>;
<span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeekNum) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">1</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">2</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Вторник"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">3</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Среда"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">4</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Четверг"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">5</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Пятница"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">6</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Суббота"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">7</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
}
--OUTPUT> Суббота
--OUTPUT> Воскресенье
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Если для нескольких значений аргумента нужно выполнять один и тот же код, то блоки <u class="stk-reset">case</u> можно объединить.</p><p class="stk-reset" data-ce-tag="paragraph">Например, для будних дней (<u class="stk-reset">dayOfWeekNum</u> от 1 до 5) будем выводить, какой это по счёту рабочий день, а для уикенда — первый или второй это выходной:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-number" style="color: #ff73fd;">3</span>;
<span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeekNum) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">1</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">2</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">3</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">4</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">5</span>:
System.out.println(dayOfWeekNum + <span class="hljs-string" style="color: #a8ff60;">"-й рабочий день"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">6</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">7</span>:
System.out.println(dayOfWeekNum-<span class="hljs-number" style="color: #ff73fd;">5</span> + <span class="hljs-string" style="color: #a8ff60;">"-й выходной"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
}
<span style="color: #ffffff;">--OUTPUT> </span><span class="hljs-number" style="color: #ffffff;">3</span><span style="color: #ffffff;">-й рабочий день</span>
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Теперь при значении переменной <u class="stk-reset">dayOfWeekNum</u> от 1 до 5 выполнится один и тот же код, и для значений 6 и 7 — тоже одинаковый.</p><p class="stk-reset" data-ce-tag="paragraph">Также можно задать действие, если ни одно из условий не сработало. Делается это с помощью ключевого слова <u class="stk-reset">default</u>:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-number" style="color: #ff73fd;">8</span>;
<span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeekNum) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">1</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">2</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">3</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">4</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">5</span>:
System.out.println(dayOfWeekNum + <span class="hljs-string" style="color: #a8ff60;">"-й рабочий день"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">6</span>:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-number" style="color: #ff73fd;">7</span>:
System.out.println(dayOfWeekNum-<span class="hljs-number" style="color: #ff73fd;">5</span> + <span class="hljs-string" style="color: #a8ff60;">"-й выходной"</span>);
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
<span class="hljs-keyword" style="color: #96cbfe;">default</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Такого по счёту дня в неделе нет."</span>);
}
--OUTPUT> Такого по счёту дня в неделе нет.</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><div class="sklbx-quote-2 stk-container stk-theme_26309__mb_15" data-ce-tag="container"><p class="stk-reset stk-theme_26309__mb_0" style="border-left:4px solid #0000FF;padding:20px;background-color:#f1f2f6" data-ce-tag="paragraph"><strong class="stk-reset">Примечание.</strong> Слово <u class="stk-reset">break</u> означает выход из <u class="stk-reset">switch…case</u>. Поэтому если ваш блок <u class="stk-reset">default</u> стоит не последним, то тоже завершайте его словом <u class="stk-reset">break</u>, иначе выполнится код из следующего <u class="stk-reset">case</u>.</p></div><h3 class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_medium_header" data-ce-tag="paragraph">Ограничения для оператора switch</h3><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Есть ряд условий, которые следует выполнять:</p><ol class=" stk-reset stk-theme_26309__mb_05" data-ce-tag="list"><li class="stk-list-item stk-reset " data-ce-tag="list-item">Тип значений в <u class="stk-reset">case</u> должен соответствовать типу значения в <u class="stk-reset">switch</u>.</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">Не поддерживаются типы <u class="stk-reset">boolean</u>, <u class="stk-reset">long</u>, с плавающей запятой (<u class="stk-reset">double</u>, <u class="stk-reset">float</u>).</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">В <u class="stk-reset">case</u> должны быть указаны либо константы, либо выражения, значения которых компилятор сможет вычислить. <br>Например, компилятор сможет вычислить выражение <u class="stk-reset">(1 + 2 + 3) * 4</u> до запуска кода и подставит вместо него итоговое значение 24. А значение переменной или результат метода компилятор до запуска программы предсказать не может, поэтому ни переменную, ни метод подставлять в <u class="stk-reset">case</u> нельзя.</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">Значения в <u class="stk-reset">case</u> не могут повторяться, а <u class="stk-reset">default</u> у каждого <u class="stk-reset">switch</u> может быть только один.</li></ol></div></div><div class="stk-grid stk-theme_26309__mb_15" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_large_header" data-ce-tag="paragraph">Обновлённый оператор switch в Java 14</h2><p class="stk-reset" data-ce-tag="paragraph">С версии 14 Java поддерживает новый синтаксис <u class="stk-reset">switch</u>:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">switch</span> (value) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val1 -> {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val2 -> {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
<span class="hljs-keyword" style="color: #96cbfe;">default</span> -> {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Теперь нам не нужно писать <u class="stk-reset">break</u>, а двоеточие заменено на стрелочку и фигурные скобки. Блок <u class="stk-reset">default</u> по-прежнему не обязателен.</p><p class="stk-reset" data-ce-tag="paragraph">Если код блока <u class="stk-reset">case</u> состоит всего из одной строки, то фигурные скобки можно не использовать:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">switch</span> (value) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val1 -> <span class="hljs-comment" style="color: #7c7c7c;">//код;</span>
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val2 -> <span class="hljs-comment" style="color: #7c7c7c;">//код;</span>
<span class="hljs-keyword" style="color: #96cbfe;">default</span> -> <span class="hljs-comment" style="color: #7c7c7c;">//код;</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">В операторе <u class="stk-reset">switch</u> прошлой версии мы задавали одно действие для нескольких значений <u class="stk-reset">case</u>, располагая пустые <u class="stk-reset">case</u> над <u class="stk-reset">case</u> c кодом:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">switch</span> (value) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val1:
<span class="hljs-keyword" style="color: #96cbfe;">case</span> val2:
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
<span class="hljs-keyword" style="color: #96cbfe;">break</span>;
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">В новой версии для этого хватает одного <u class="stk-reset">case</u>, а связанные с ним значения разделяются запятой. Например:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">string dayOfWeek = <span class="hljs-string" style="color: #a8ff60;">"Суббота"</span>;
<span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeek) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span>, <span class="hljs-string" style="color: #a8ff60;">"Вторник"</span>, <span class="hljs-string" style="color: #a8ff60;">"Четверг"</span> -> System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Работа."</span>);
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Среда"</span> -> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Зенит рабочей недели."</span>);
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Очень много работы."</span>);
}
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Пятница"</span> -> System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Последний рабочий день перед выходными."</span>);
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Суббота"</span> -> System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Ура, первый выходной! Можно и поспать."</span>);
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span> -> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Остался последний выходной, пора готовиться к работе."</span>);
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Но можно и поспать :)"</span>);
}
<span class="hljs-keyword" style="color: #96cbfe;">default</span> -> System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Не знаю такого дня, но я бы поспал!"</span>);
}
--OUTPUT> Ура, первый выходной! Можно и поспать.</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Теперь <u class="stk-reset">switch</u> — уже не просто оператор ветвления, он может вернуть значение. Это делается с помощью вспомогательного оператора <u class="stk-reset">yield</u>.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Пример:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">string dayOfWeek = <span class="hljs-string" style="color: #a8ff60;">"Среда"</span>;
<span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeek) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">1</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Вторник"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">2</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Среда"</span>:
System.out.println(<span class="hljs-string" style="color: #a8ff60;">"Очень сложный день"</span>);
yield <span class="hljs-number" style="color: #ff73fd;">3</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Четверг"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">4</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Пятница"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">5</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Суббота"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">6</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span>:
yield <span class="hljs-number" style="color: #ff73fd;">7</span>;
<span class="hljs-keyword" style="color: #96cbfe;">default</span>:
yield -<span class="hljs-number" style="color: #ff73fd;">1</span>;
};
System.out.println(dayOfWeekNum);
--OUTPUT> Очень сложный день
<span style="color: #ffffff;">--OUTPUT> </span><span class="hljs-number" style="color: #ffffff;">3</span></pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">В новой версии <u class="stk-reset">switch</u>, когда нам нужно лишь вернуть значение из соответствующего <u class="stk-reset">case</u> (он должен быть без кода), — можно обойтись и без слова <u class="stk-reset">yield</u>:</p><div class="stk-container sklbx-browser stk-theme_26309__mb_15" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">int</span> dayOfWeekNum = <span class="hljs-keyword" style="color: #96cbfe;">switch</span> (dayOfWeek) {
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Понедельник"</span> -> <span class="hljs-number" style="color: #ff73fd;">1</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Вторник"</span> -> <span class="hljs-number" style="color: #ff73fd;">2</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Среда"</span> -> {
System.out.println(<span class="hljs-string" style="color: #a8ff60;">""</span>);
yield <span class="hljs-number" style="color: #ff73fd;">3</span>;
}
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Четверг"</span> -> <span class="hljs-number" style="color: #ff73fd;">4</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Пятница"</span> -> <span class="hljs-number" style="color: #ff73fd;">5</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Суббота"</span> -> <span class="hljs-number" style="color: #ff73fd;">6</span>;
<span class="hljs-keyword" style="color: #96cbfe;">case</span> <span class="hljs-string" style="color: #a8ff60;">"Воскресенье"</span> -> <span class="hljs-number" style="color: #ff73fd;">7</span>;
<span class="hljs-keyword" style="color: #96cbfe;">default</span> -> -<span class="hljs-number" style="color: #ff73fd;">1</span>;
};</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Советы и упрощения</h3><p class="stk-reset" data-ce-tag="paragraph">1. Фигурные скобки после <u class="stk-reset">if</u> или <u class="stk-reset">else</u> разрешено не ставить, если тело блока состоит всего из одной строки.</p><p class="stk-reset" data-ce-tag="paragraph">Однако всё же советую ставить скобки, так вы научитесь быть последовательными и облегчите <span class="stk-reset" data-stk-footnote-link="fnKMN-z">рефакторинг кода</span>.</p><p class="stk-reset" data-ce-tag="paragraph">2. Вот так писать не следует (внимание на условие в <u class="stk-reset">if</u>):</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-function"><span class="hljs-keyword" style="color: #96cbfe;">public</span> <span class="hljs-keyword" style="color: #96cbfe;">boolean</span> <span class="hljs-title" style="color: #ffffb6;">isMoreFive</span><span class="hljs-params">(<span class="hljs-keyword" style="color: #96cbfe;">int</span> a)</span> </span>{
<span class="hljs-keyword" style="color: #96cbfe;">return</span> a > <span class="hljs-number" style="color: #ff73fd;">5</span>;
}
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (isMoreFive(<span class="hljs-number" style="color: #ff73fd;">3</span>) == <span class="hljs-keyword" style="color: #96cbfe;">true</span>) {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Код будет работать, но сравнение <u class="stk-reset">boolean</u> с <u class="stk-reset">boolean</u> в условии — это лишняя операция.</p><p class="stk-reset" data-ce-tag="paragraph">Поскольку метод <u class="stk-reset">isMoreFive</u> сам возвращает булево значение — напишите вот так:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (isMoreFive(<span class="hljs-number" style="color: #ff73fd;">3</span>)) {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Здесь снова ненужное сравнение:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (isMoreFive(<span class="hljs-number" style="color: #ff73fd;">3</span>) == <span class="hljs-keyword" style="color: #96cbfe;">false</span>) {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Чтобы не было лишней операции — пишите вот так:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (!isMoreFive(<span class="hljs-number" style="color: #ff73fd;">3</span>)) {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Условие по-прежнему выполняется, когда <u class="stk-reset">isMoreFive</u> возвращает false, однако от бессмысленного сравнения мы избавились.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__mb_05 stk-theme_26309__style_large_header" data-ce-tag="paragraph">Тернарный оператор</h2><p class="stk-reset" data-ce-tag="paragraph"><span class="stk-reset" data-stk-footnote-link="fnKZIF-">Тернарный</span> оператор — это лаконичная замена <u class="stk-reset">if-else</u>. Он возвращает вместо себя одно из выражений в зависимости от истинности условия (логического высказывания).</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Синтаксис тернарного оператора:</p><div class="stk-grid" data-ce-tag="grid"><div data-col-width="9" class="stk-grid-col stk-grid-col_last" data-stk-css="stk0KrFp" data-ce-tag="grid-col"><p class=" stk-theme_26309__style_small_text stk-theme_26309__mb_05 stk-reset stk-theme_26309__pad_hor_1" data-ce-tag="paragraph">условие ? выражение1 : выражение2</p></div><div data-col-width="3" class="stk-grid-col stk-grid-col_empty" data-ce-tag="grid-col"><p class="ce-element--empty stk-element_no-text stk-reset" data-ce-tag="paragraph"></p></div></div><style data-stk-css="stk0KrFp" class="" media="all">[data-stk-css="stk0KrFp"]:not(#stk):not(#stk):not(style){background-color: rgba(255, 255, 255, 1); box-shadow: 0 0 10px rgba(0,0,0,0.2); padding: 20px}</style><p class="stk-reset" data-ce-tag="paragraph">Если условие выполняется, то оператор возвращает <u class="stk-reset">выражение1</u>, иначе — <u class="stk-reset">выражение2</u>. Значения возвращаемых выражений могут быть любого типа.</p><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Примеры:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">String str = <span class="hljs-number" style="color: #ff73fd;">3</span> > <span class="hljs-number" style="color: #ff73fd;">2</span> ? <span class="hljs-string" style="color: #a8ff60;">"Условие выполняется"</span> : <span class="hljs-string" style="color: #a8ff60;">"Условие не выполняется"</span>;
System.out.println(str);
--OUTPUT> Условие выполняется
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Как записать то же самое с <u class="stk-reset">if</u>:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">String str;
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (<span class="hljs-number" style="color: #ff73fd;">3</span> > <span class="hljs-number" style="color: #ff73fd;">2</span>) {
str = <span class="hljs-string" style="color: #a8ff60;">"Условие выполняется"</span>;
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
str = <span class="hljs-string" style="color: #a8ff60;">"Условие не выполняется"</span>;
}
System.out.println(str);
--OUTPUT> Условие выполняется
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Как видно, вариант с тернарным оператором намного короче.</p><p class="stk-reset" data-ce-tag="paragraph">Тернарные операторы допустимо вкладывать друг в друга:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">String str = <span class="hljs-number" style="color: #ff73fd;">3</span> > <span class="hljs-number" style="color: #ff73fd;">2</span> ? (<span class="hljs-number" style="color: #ff73fd;">5</span> < <span class="hljs-number" style="color: #ff73fd;">4</span> ? <span class="hljs-string" style="color: #a8ff60;">"Оба условия выполняются"</span> : <span class="hljs-string" style="color: #a8ff60;">"Второе условие не выполняется"</span>) : <span class="hljs-string" style="color: #a8ff60;">"Первое условие не выполняется"</span>;
System.out.println(str);
--OUTPUT> Второе условие не выполняется
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">И то же самое с помощью <u class="stk-reset">if</u>:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;">String str;
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (<span class="hljs-number" style="color: #ff73fd;">3</span> > <span class="hljs-number" style="color: #ff73fd;">2</span>) {
<span class="hljs-keyword" style="color: #96cbfe;">if</span> (<span class="hljs-number" style="color: #ff73fd;">5</span> < <span class="hljs-number" style="color: #ff73fd;">4</span>) {
str = <span class="hljs-string" style="color: #a8ff60;">"Оба условия выполняются"</span>;
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
str = <span class="hljs-string" style="color: #a8ff60;">"Второе условие не выполняется"</span>;
}
} <span class="hljs-keyword" style="color: #96cbfe;">else</span> {
str = <span class="hljs-string" style="color: #a8ff60;">"Первое условие не выполняется"</span>;
}
System.out.println(str);
--OUTPUT> Второе условие не выполняется
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Конечно, так длиннее — но и читабельнее.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph">Оператор instanceof</h2><p class="stk-reset" data-ce-tag="paragraph">Есть ещё один оператор, который возвращает булево значение, — это <u class="stk-reset">instanceof</u>.</p><p class="stk-reset" data-ce-tag="paragraph">Он проверяет принадлежность переменной к какому-то классу.</p><div class="stk-grid stk-theme_26309__mb_15" data-ce-tag="grid" data-stk-css="stk_ZIfC"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h3 class=" stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Когда используют instanceof?</h3><p class="stk-reset" data-ce-tag="paragraph">Если классы объектов нужно узнать во время выполнения программы.</p><p class="stk-reset" data-ce-tag="paragraph">Допустим, есть два потока исполнения. В первом создаются объекты разных классов, а в другом они используются. С <u class="stk-reset">instanceof</u> легко выяснять класс каждо­го объекта, который получает второй поток.</p><p class="stk-reset" data-ce-tag="paragraph">Класс объекта важно знать и для приведения типов. Хотя большинство подобных проблем выявляет компилятор, но приведение типов при иерархии классов чревато ошибками, которые всплывают только во вре­мя работы.</p><p class="stk-reset" data-ce-tag="paragraph">Вообще, <u class="stk-reset">instanceof</u> используется редко, потому что обычно типы объектов известны сразу. Применять этот оператор считается дурным тоном, это признак плохой программной архитектуры. Но его используют в обобщённых процедурах, которые оперируют объектами из сложной ие­рархии классов.</p></div></div><style data-stk-css="stk_ZIfC" media="all" class="">
[data-stk-css="stk_ZIfC"]:not(#stk):not(#stk):not(style) {
border-left: 4px solid #f5a74f;
padding: 20px;
background-color: rgba(254, 245, 224, 1)
}
</style><h3 class=" stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph"><strong class="stk-reset">Как работать с instanceof</strong></h3><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Рассмотрим на примере:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-class"><span class="hljs-keyword" style="color: #96cbfe;">class</span> <span class="hljs-title" style="color: #ffffb6;">A</span> </span>{}
<span class="hljs-class"><span class="hljs-keyword" style="color: #96cbfe;">class</span> <span class="hljs-title" style="color: #ffffb6;">B</span> <span class="hljs-keyword" style="color: #96cbfe;">extends</span> <span class="hljs-title" style="color: #ffffb6;">A</span> </span>{}
<span class="hljs-class"><span class="hljs-keyword" style="color: #96cbfe;">class</span> <span class="hljs-title" style="color: #ffffb6;">C</span> </span>{}
A a = <span class="hljs-keyword" style="color: #96cbfe;">new</span> A(); <span class="hljs-comment" style="color: #7c7c7c;">//объект относится только к классу A</span>
B ba = <span class="hljs-keyword" style="color: #96cbfe;">new</span> B(); <span class="hljs-comment" style="color: #7c7c7c;">//объект относится к классам A и B</span>
C c = <span class="hljs-keyword" style="color: #96cbfe;">new</span> C(); <span class="hljs-comment" style="color: #7c7c7c;">//объект относится только к классу C</span>
System.out.println(a <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> A);
System.out.println(bа <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> A);
System.out.println(ba <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> B);
System.out.println(a <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> B);
System.out.println((Object) c <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> A);
System.out.println(c <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> C);
--OUTPUT> true
--OUTPUT> true
--OUTPUT> true
--OUTPUT> false
--OUTPUT> false
--OUTPUT> true
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Объект <u class="stk-reset">c</u> принадлежит только к классу <u class="stk-reset">C</u>. Нам пришлось привести его к классу <u class="stk-reset">Object</u>, чтобы можно было проверить на соответствие классу <u class="stk-reset">A</u>.</p><p class="stk-reset" data-ce-tag="paragraph">Иначе компилятор сразу бы увидел, что объект класса <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">C</u> не принадлежит к классу <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">A</u>, — и не дал бы запустить программу с ошибкой несовместимости типов:</p><div class="stk-container sklbx-browser stk-theme_26309__mb_15" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-class"><span class="hljs-keyword" style="color: #96cbfe;">class</span> <span class="hljs-title" style="color: #ffffb6;">A</span> </span>{}
<span class="hljs-class"><span class="hljs-keyword" style="color: #96cbfe;">class</span> <span class="hljs-title" style="color: #ffffb6;">C</span> </span>{}
A a = <span class="hljs-keyword" style="color: #96cbfe;">new</span> A(); <span class="hljs-comment" style="color: #7c7c7c;">//объект принадлежит только классу A</span>
C c = <span class="hljs-keyword" style="color: #96cbfe;">new</span> C(); <span class="hljs-comment" style="color: #7c7c7c;">//объект принадлежит только классу C</span>
System.out.println(c <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> A);
--OUTPUT> <...> error: incompatible types: C cannot be converted to A <...>
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><h3 class="stk-theme_26309__style_medium_header stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Упрощённый оператор instanceof в Java 15</h3><p class="stk-reset" data-ce-tag="paragraph">Раньше был допустим только такой синтаксис:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (object <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> Type) {
Type t = (Type) object;
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">То есть мы сначала проверяем, что <u class="stk-reset">object</u> может быть приведён к какому-то типу <u class="stk-reset">Type</u>, — это и делает оператор <u class="stk-reset">instanceof</u>, а внутри условия приводим объект к этому типу и записываем результат в новую переменную.</p><p class="stk-reset" data-ce-tag="paragraph">В Java 15 появилась конструкция упрощённого приведения:</p><div class="stk-container sklbx-browser" data-ce-tag="container" data-container-name="Окно браузера"><div class="sklbx-browser__header">
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
<div class="sklbx-browser__button"></div>
</div><figure class="stk-reset stk-embed-figure stk-embed_rendered" data-ce-tag="embed"><code class="stk-reset stk-code"><pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: #000000; color: #f8f8f8;"><span class="hljs-keyword" style="color: #96cbfe;">if</span> (object <span class="hljs-keyword" style="color: #96cbfe;">instanceof</span> Type t) {
<span class="hljs-comment" style="color: #7c7c7c;">//код</span>
}
</pre></code><figcaption class="stk-reset stk-description" data-ce-tag="description"></figcaption></figure></div><p class="stk-reset" data-ce-tag="paragraph">Мы проверили, что <u class="stk-reset">object</u> можно привести к <u class="stk-reset">Type</u>, и сразу в условии привели его к этому типу, а результат записали в переменную <u class="stk-reset">t</u>. Эту переменную можно использовать внутри блока <u class="stk-reset">if</u>.</p></div></div><div class="stk-theme_26309__mb_15 stk-grid" data-ce-tag="grid"><div data-col-width="12" class="stk-grid-col stk-grid-col_last" data-ce-tag="grid-col"><h2 class="stk-reset stk-theme_26309__style_large_header" data-ce-tag="paragraph">Что дальше?</h2><p class=" stk-theme_26309__mb_05 stk-reset" data-ce-tag="paragraph">Сперва подытожим:</p><ul class=" stk-theme_26309__pad_hor_1 stk-reset" data-ce-tag="list"><li class="stk-list-item stk-reset " data-ce-tag="list-item">мы познакомились с типом <u class="stk-reset">Boolean</u>;</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">рассмотрели операторы сравнения <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1"><</u>, <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">></u>, <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1"><=</u>, <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">>=</u>, <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">==</u>, <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">!=</u>, а также <u class="stk-reset" data-gtm-vis-has-fired-10171822_255="1">instanceof</u>;</li><li class="stk-list-item stk-reset " data-ce-tag="list-item">изучили операторы ветвления <u class="stk-reset">if</u>, <u class="stk-reset">switch</u> и тернарный оператор.</li></ul><p class="stk-reset" data-ce-tag="paragraph"><a href="https://skillbox.ru/media/base/logicheskie_operatory_v_java/" class="stk-reset">Пора рассмотреть</a> условные выражения, включающие не только операторы сравнения, но и <strong class="stk-reset">логические операторы</strong>.</p></div></div><div class="stk-footnote stk-footnote--hide" data-ce-tag="footnote" data-stk-footnote-body="fnrMHRg" data-stk-show="mouseover" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Как его только ни зовут: и булев, и булевый, и булевский, а иногда просто — логический тип данных.<br></p><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Назван он в честь английского математика середины XIX века Джорджа Буля (George Boole), одного из отцов математической логики.</p></div></div><div class="stk-footnote stk-footnote--hide" data-ce-tag="footnote" data-stk-footnote-body="fnyTQgJ" data-stk-show="mouseover" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Операндом (от англ. operand) в языках программирования называют аргумент операции (выражения для вычисления), но не аргумент команды или метода.</p></div></div><style data-stk-css="stkAnQbI" class="" media="all">[data-stk-css="stkAnQbI"]:not(#stk):not(#stk):not(style){width: 20%}</style><style data-stk-css="stkAqWEt" class="" media="all">[data-stk-css="stkAqWEt"]:not(#stk):not(#stk):not(style){width: 20%; border: solid 1px grey}</style><style data-stk-css="stk2kZdt" class="" media="all">[data-stk-css="stk2kZdt"]:not(#stk):not(#stk):not(style){width: 20%}</style><style data-stk-css="stkKVzYj" class="" media="all">[data-stk-css="stkKVzYj"]:not(#stk):not(#stk):not(style){width: 40%; border: solid 1px grey}</style><style data-stk-css="stkiXZxX" class="" media="all">[data-stk-css="stkiXZxX"]:not(#stk):not(#stk):not(style){border: solid 1px grey}</style><style data-stk-css="stkT7wms" class="" media="all">[data-stk-css="stkT7wms"]:not(#stk):not(#stk):not(style){background-color: rgba(255, 255, 255, 1); box-shadow: 0 0 10px rgba(0,0,0,0.2); padding: 20px}</style><div class="stk-footnote stk-footnote--hide" data-ce-tag="footnote" data-stk-footnote-body="fnaERhD" data-stk-show="mouseover" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">В переводе с английского — «переключатель».</p></div></div><div class="stk-footnote stk-footnote--hide" data-ce-tag="footnote" data-stk-footnote-body="fnKMN-z" data-stk-show="mouseover" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Рефакторинг (перепроектирование/переработка) — переделка кода, которая облегчает его понимание, но не отражается на поведении программы.</p></div></div><div class="stk-footnote stk-footnote--hide" data-ce-tag="footnote" data-stk-footnote-body="fnKZIF-" data-stk-show="mouseover" style="display:none"><div class="stk-footnote__close"></div><div class="stk-footnote__body"><p class="stk-theme_26309__style_small_text stk-reset" data-ce-tag="paragraph">Тернарный — значит «тройной», принимающий сразу три операнда.</p></div></div><br><br></div><br></body></html>
</div>
</div>
</div>
</div>
<div class="col-xl-9 col-lg-8 col-poster">
<div class="article-preview-info">
</div>
</div>
<noindex>
<div class="share" data-nosnippet>
<button class="share__handler-btn ">
<span class="share__handler-icon">
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11 4.99902L6 0V2.99805C2.688 2.99805 0 5.68505 0 8.99805V11.498H0.0980225C0.765022 8.91205 3.107 6.99805 5.901 6.99805H6.00098V9.99805L11 4.99902Z" fill="currentColor"/>
</svg>
</span>
<span class="share__handler-text">Поделиться</span>
</button>
<div class="share__list">
<a href="#" class="share__item" data-code="vk">
<span class="share__item-icon share__item-icon--vk">
<svg width="9" height="5" viewBox="0 0 9 5" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.04776 4.98054H4.53996C4.62377 4.97136 4.70279 4.9361 4.76621 4.87951C4.81226 4.81209 4.83594 4.73139 4.83369 4.64925C4.83369 4.64925 4.82574 3.94629 5.1314 3.84125C5.43701 3.73621 5.826 4.51998 6.23879 4.82297C6.39281 4.95308 6.59128 5.01558 6.79053 4.99669L7.89399 4.98054C7.89399 4.98054 8.47355 4.94415 8.19965 4.46339C7.98372 4.08315 7.70589 3.743 7.37799 3.45744C6.68338 2.77872 6.77865 2.8878 7.61219 1.71216C8.12024 0.997077 8.32269 0.556717 8.25918 0.370875C8.14651 0.254767 7.98299 0.205914 7.82655 0.241594L6.58018 0.249674C6.52565 0.241067 6.46984 0.251007 6.42141 0.277954C6.37298 0.314507 6.33466 0.363228 6.31025 0.419356C6.18259 0.772814 6.0287 1.11586 5.8498 1.44552C5.29807 2.43936 5.07579 2.49188 4.98451 2.43128C4.77416 2.28584 4.82574 1.85356 4.82574 1.54248C4.82574 0.580957 4.96468 0.176954 4.55979 0.0719133C4.36879 0.0254376 4.17259 0.00505841 3.97631 0.0113129C3.62834 -0.0214164 3.27745 0.017045 2.94429 0.124433C2.8014 0.197154 2.69423 0.358753 2.76171 0.370875C2.90334 0.385518 3.03406 0.454932 3.12688 0.564795C3.21268 0.750336 3.25481 0.953675 3.24993 1.15868C3.24993 1.15868 3.32535 2.29392 3.07925 2.43532C2.91254 2.53228 2.68232 2.33432 2.18616 1.4334C2.01958 1.11848 1.87243 0.793298 1.74557 0.459754C1.72231 0.404013 1.68704 0.354309 1.64236 0.314316C1.58589 0.272672 1.52066 0.245006 1.45184 0.233514L0.268986 0.241594C0.181167 0.241154 0.0958013 0.271066 0.0268587 0.326434C-0.00595087 0.396174 -0.00882613 0.476652 0.0189202 0.548633C0.0189202 0.548633 0.947737 2.83932 1.99563 3.99477C2.51 4.60651 3.2568 4.96526 4.04776 4.98054Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Vkontakte</span>
</a>
<a href="#" class="share__item" data-code="tw">
<span class="share__item-icon share__item-icon--tw">
<svg width="9" height="7" viewBox="0 0 9 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M5.52788 0.00144284V0H5.9158L6.05754 0.027414C6.15204 0.0452114 6.23783 0.068535 6.31491 0.0973918C6.39201 0.126249 6.46661 0.159917 6.53872 0.198391C6.61083 0.236864 6.67623 0.276066 6.73492 0.315982C6.79311 0.355422 6.84533 0.397265 6.89158 0.441509C6.93733 0.486237 7.0087 0.49778 7.10568 0.476138C7.20266 0.454495 7.3071 0.424433 7.419 0.38596C7.5309 0.347487 7.64156 0.304201 7.75097 0.256104C7.86039 0.208007 7.92703 0.177469 7.95091 0.164484C7.97428 0.151022 7.98671 0.143808 7.98821 0.142841L7.98969 0.140677L7.99715 0.13707L8.00461 0.133463L8.01207 0.129856L8.01953 0.126249L8.02102 0.124084L8.02326 0.122642L8.02551 0.121199L8.02699 0.119034L8.03445 0.11687L8.04191 0.115427L8.04043 0.126249L8.03818 0.13707L8.03445 0.147891L8.03072 0.158713L8.02699 0.165927L8.02326 0.173141L8.01953 0.183962C8.01705 0.191176 8.01456 0.200793 8.01207 0.212819C8.00959 0.224845 7.98596 0.272935 7.9412 0.357103C7.89644 0.441271 7.84049 0.526637 7.77335 0.613208C7.70621 0.699778 7.64604 0.765182 7.59283 0.809434C7.53911 0.854162 7.50355 0.885421 7.48614 0.903219C7.46874 0.921492 7.4476 0.938323 7.42273 0.953718L7.38543 0.977525L7.37797 0.981132L7.37051 0.984739L7.36902 0.986903L7.36678 0.988346L7.36454 0.989789L7.36305 0.991953L7.35559 0.99556L7.34813 0.999168L7.34664 1.00133L7.3444 1.00277L7.34216 1.00422L7.34067 1.00638L7.33918 1.00855L7.33694 1.00999L7.3347 1.01143L7.33321 1.0136H7.37051L7.57939 0.970311C7.71865 0.941454 7.85168 0.906588 7.9785 0.865705L8.17992 0.800777L8.2023 0.793563L8.21349 0.789956L8.22095 0.786348L8.22841 0.782741L8.23587 0.779134L8.24333 0.775527L8.25825 0.773363L8.27317 0.77192V0.786348L8.26944 0.787791L8.26571 0.789956L8.26423 0.79212L8.26198 0.793563L8.25974 0.795006L8.25825 0.79717L8.25677 0.799334L8.25452 0.800777L8.25228 0.80222L8.25079 0.804384L8.24931 0.806548L8.24706 0.807991L8.24333 0.815205L8.2396 0.82242L8.23736 0.823862C8.23637 0.825305 8.20479 0.866181 8.14262 0.946504C8.08046 1.0273 8.04689 1.06818 8.04191 1.06915C8.03694 1.07059 8.02997 1.0778 8.02102 1.09079C8.01257 1.10425 7.95985 1.15788 7.86287 1.25166C7.76589 1.34545 7.67091 1.42889 7.57791 1.502C7.48441 1.57558 7.43716 1.666 7.43616 1.77325C7.43467 1.88002 7.42895 2.00074 7.419 2.13541C7.40905 2.27007 7.3904 2.41555 7.36305 2.57186C7.3357 2.72817 7.29342 2.90492 7.23623 3.10211C7.17904 3.29929 7.10941 3.49168 7.02735 3.67925C6.94529 3.86681 6.8595 4.03514 6.76998 4.18424C6.68046 4.33334 6.5984 4.45958 6.5238 4.56299C6.4492 4.66639 6.37336 4.76378 6.29626 4.85516C6.21918 4.94654 6.12171 5.04947 6.00384 5.16393C5.88547 5.27791 5.82082 5.34044 5.80988 5.3515C5.79844 5.36208 5.74971 5.40152 5.66365 5.46981C5.57812 5.53858 5.48611 5.60736 5.38763 5.67614C5.28966 5.74443 5.19964 5.80143 5.11758 5.84711C5.03552 5.8928 4.93655 5.94498 4.82067 6.00366C4.70529 6.06282 4.58046 6.11765 4.44618 6.16815C4.3119 6.21865 4.17016 6.26554 4.02096 6.30882C3.87176 6.35211 3.72753 6.38578 3.58827 6.40982C3.44903 6.43387 3.29112 6.45431 3.11456 6.47114L2.84973 6.49639V6.5H2.36483V6.49639L2.30142 6.49279C2.25915 6.49038 2.22433 6.48797 2.19698 6.48557C2.16963 6.48317 2.06643 6.46994 1.88739 6.44589C1.70835 6.42185 1.56785 6.3978 1.4659 6.37375C1.36395 6.34971 1.21225 6.30401 1.01083 6.23668C0.809413 6.16935 0.637087 6.10129 0.493854 6.03252C0.351121 5.96422 0.261601 5.92094 0.225293 5.90266C0.189485 5.88487 0.149201 5.86275 0.10444 5.83629L0.0373001 5.79661L0.0358156 5.79445L0.0335701 5.79301L0.0313321 5.79156L0.0298401 5.7894L0.0223801 5.78579L0.0149201 5.78219L0.0134355 5.78002L0.01119 5.77858L0.00895204 5.77714L0.00746003 5.77497L0.00597548 5.77281L0.00373001 5.77137H0V5.75694L0.00746003 5.75838L0.0149201 5.76054L0.0484902 5.76415C0.0708703 5.76655 0.131796 5.77016 0.231261 5.77497C0.330733 5.77978 0.436412 5.77978 0.548312 5.77497C0.660213 5.77016 0.774605 5.75934 0.891474 5.74251C1.00835 5.72568 1.14636 5.69682 1.30551 5.65594C1.46466 5.61505 1.61087 5.56648 1.74416 5.51021C1.87695 5.45346 1.97144 5.41114 2.02764 5.38324C2.08334 5.35583 2.16838 5.30484 2.28277 5.2303L2.45435 5.11848L2.45584 5.11632L2.45808 5.11487L2.46033 5.11343L2.46181 5.11127L2.4633 5.1091L2.46554 5.10766L2.46779 5.10622L2.46927 5.10405L2.47673 5.10189L2.48419 5.10044L2.48568 5.09323L2.48792 5.08602L2.49017 5.08457L2.49165 5.08241L2.43197 5.0788C2.39219 5.0764 2.35364 5.07399 2.31634 5.07159C2.27904 5.06918 2.2206 5.05836 2.14103 5.03912C2.06146 5.01988 1.97567 4.99103 1.88366 4.95255C1.79165 4.91408 1.70213 4.86838 1.6151 4.81548C1.52807 4.76258 1.46515 4.71857 1.42636 4.68346C1.38807 4.64883 1.33833 4.59978 1.27716 4.53629C1.21648 4.47233 1.16376 4.40668 1.119 4.33934C1.07424 4.27202 1.03148 4.19433 0.990699 4.10633L0.928774 3.97503L0.925044 3.96421L0.921314 3.95339L0.919076 3.94617L0.917584 3.93896L0.928774 3.9404L0.939964 3.94256L1.02202 3.95339C1.07674 3.9606 1.16253 3.963 1.27939 3.9606C1.39627 3.9582 1.47709 3.95339 1.52185 3.94617C1.56661 3.93896 1.59396 3.93414 1.60391 3.93174L1.61883 3.92814L1.63748 3.92453L1.65613 3.92092L1.65762 3.91876L1.65986 3.91731L1.6621 3.91587L1.66359 3.91371L1.64867 3.9101L1.63375 3.90649L1.61883 3.90289L1.60391 3.89928L1.58899 3.89567C1.57904 3.89327 1.56164 3.88846 1.53677 3.88124C1.5119 3.87403 1.44476 3.84757 1.33535 3.80189C1.22594 3.7562 1.1389 3.71171 1.07424 3.66842C1.00943 3.62501 0.947626 3.57754 0.889235 3.5263C0.831047 3.47436 0.767145 3.40751 0.697513 3.32575C0.627888 3.24399 0.565724 3.149 0.511012 3.04079C0.456308 2.93257 0.415277 2.82917 0.387922 2.73058C0.360676 2.63256 0.3427 2.53235 0.334217 2.43119L0.320781 2.27969L0.328241 2.28113L0.335701 2.2833L0.343161 2.2869L0.350621 2.29051L0.358081 2.29412L0.365541 2.29772L0.481172 2.34822C0.558264 2.38189 0.653998 2.41075 0.768383 2.43479C0.882775 2.45884 0.951154 2.47207 0.973534 2.47447L1.0071 2.47808H1.07424L1.07276 2.47592L1.07051 2.47447L1.06828 2.47303L1.06678 2.47087L1.0653 2.4687L1.06305 2.46726L1.06082 2.46582L1.05932 2.46365L1.05186 2.46004L1.0444 2.45644L1.04292 2.45427L1.04067 2.45283L1.03844 2.45139L1.03694 2.44922L1.02948 2.44562L1.02202 2.44201L1.02054 2.43984C1.01905 2.43888 0.99766 2.42349 0.956376 2.39367C0.915592 2.36337 0.872823 2.32418 0.828063 2.27608C0.783303 2.22798 0.738543 2.17749 0.693783 2.12458C0.64894 2.07156 0.609 2.01483 0.574422 1.95505C0.539614 1.89493 0.502806 1.81846 0.464014 1.72564C0.425721 1.6333 0.396627 1.54023 0.376731 1.44645C0.356843 1.35266 0.345653 1.26008 0.343161 1.1687C0.340677 1.07732 0.343161 0.999168 0.350621 0.93424C0.358081 0.869312 0.373001 0.795965 0.395382 0.714206C0.417762 0.632448 0.450093 0.545877 0.492362 0.454495L0.555772 0.317425L0.559502 0.306604L0.563232 0.295782L0.565478 0.29434L0.566962 0.292175L0.568454 0.290011L0.570692 0.288568L0.572938 0.290011L0.574422 0.292175L0.575914 0.29434L0.578152 0.295782L0.580398 0.297225L0.581882 0.29939L0.583374 0.301554L0.585612 0.302997L0.589342 0.310211L0.593072 0.317425L0.595318 0.318868L0.596802 0.321032L0.697513 0.429245C0.764653 0.501387 0.844229 0.581948 0.936234 0.670921C1.02825 0.759894 1.07922 0.806065 1.08916 0.809434C1.09912 0.813279 1.11154 0.824338 1.12646 0.842619C1.14138 0.860417 1.19112 0.902981 1.27567 0.970311C1.36022 1.03764 1.47087 1.1158 1.60764 1.20477C1.74441 1.29375 1.89609 1.38152 2.0627 1.46809C2.22931 1.55466 2.40835 1.63281 2.59982 1.70255C2.7913 1.77229 2.92558 1.81798 3.00266 1.83962C3.07975 1.86127 3.21154 1.88892 3.39804 1.92259C3.58454 1.95625 3.72505 1.9779 3.81954 1.98751C3.91403 1.99713 3.97869 2.00266 4.0135 2.00411L4.06572 2.00555L4.06423 1.99473L4.06199 1.98391L4.04707 1.89373C4.03712 1.83361 4.03215 1.74944 4.03215 1.64123C4.03215 1.53302 4.04085 1.43322 4.05826 1.34184C4.07567 1.25046 4.10178 1.15788 4.13659 1.0641C4.1714 0.970311 4.20547 0.895038 4.23879 0.838291C4.27261 0.78202 4.31687 0.717814 4.37158 0.645671C4.42629 0.573529 4.49716 0.498985 4.58419 0.422031C4.67122 0.345077 4.77069 0.276542 4.88259 0.216426C4.99449 0.15631 5.09769 0.110615 5.19218 0.0793563C5.28668 0.0480971 5.36625 0.0276521 5.4309 0.0180355C5.49556 0.00841898 5.52788 0.00288568 5.52788 0.00144284Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Twitter</span>
</a>
<a href="#" class="share__item" data-code="tg">
<span class="share__item-icon share__item-icon--tg">
<svg width="10" height="7" viewBox="0 0 10 7" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.39589 3.04852C1.39589 3.04852 5.05491 1.51189 6.32392 0.9708C6.8104 0.754384 8.46012 0.0617918 8.46012 0.0617918C8.46012 0.0617918 9.22155 -0.241191 9.15809 0.494655C9.13692 0.797667 8.96773 1.85815 8.79854 3.00523C8.54472 4.62846 8.26976 6.40316 8.26976 6.40316C8.26976 6.40316 8.22746 6.90097 7.86791 6.98753C7.50836 7.0741 6.91613 6.68455 6.8104 6.59795C6.72577 6.53304 5.22411 5.5591 4.6742 5.08295C4.52614 4.9531 4.35695 4.6934 4.69533 4.39039C5.45676 3.67617 6.36622 2.78882 6.91613 2.2261C7.16995 1.96638 7.42374 1.36038 6.36622 2.09622C4.86456 3.15674 3.38403 4.15231 3.38403 4.15231C3.38403 4.15231 3.04561 4.36873 2.41111 4.17394C1.77657 3.97918 1.03631 3.71945 1.03631 3.71945C1.03631 3.71945 0.528726 3.39481 1.39589 3.04852Z" fill="white"/>
</svg>
</span>
<span class="share__item-text">Telegram</span>
</a>
<a href="#" class="share__item js-share-item-copy">
<span class="share__item-icon share__item-icon--copy">
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.19922 5.40327C4.37217 5.63449 4.59283 5.8258 4.84622 5.96425C5.09962 6.10269 5.37982 6.18501 5.66783 6.20564C5.95584 6.22627 6.24492 6.18471 6.51546 6.08379C6.78599 5.98287 7.03166 5.82495 7.2358 5.62074L8.44399 4.41255C8.81079 4.03277 9.01375 3.52412 9.00917 2.99615C9.00458 2.46818 8.79281 1.96313 8.41946 1.58978C8.04611 1.21644 7.54106 1.00466 7.01309 1.00008C6.48512 0.995488 5.97647 1.19845 5.59669 1.56525L4.904 2.25392" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.81002 4.59658C5.63707 4.36536 5.41641 4.17404 5.16302 4.0356C4.90962 3.89716 4.62942 3.81483 4.34141 3.79421C4.0534 3.77358 3.76432 3.81514 3.49379 3.91605C3.22325 4.01697 2.97758 4.17489 2.77344 4.3791L1.56525 5.58729C1.19845 5.96707 0.995488 6.47572 1.00008 7.0037C1.00466 7.53167 1.21644 8.03672 1.58978 8.41006C1.96313 8.78341 2.46818 8.99518 2.99615 8.99977C3.52412 9.00436 4.03277 8.80139 4.41255 8.43459L5.10122 7.74592" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="share__item-text">Скопировать ссылку</span>
</a>
</div>
</div>
</noindex>
</div>
<section class="container inset" data-banner="223466" data-source="200345" data-format="horizontal">
<section class="container inset" data-format="horizontal">
<div class="row">
<div class="col-lg-8 col-sm-12">
<a data-source="200345" data-banner="223466" target="_blank" href="https://skillbox.ru/course/profession-java/" class="article-advert-banner__link courseLink" data-format="horizontal" data-type="horizontal" data-courseid="3254">
<div class="inset__wrapper" style="background-color: #BDDAEC;">
<div class="inset__content">
<h2 class="inset__header">Курс с помощью в трудоустройстве</h2>
<p class="inset__description">
Профессия Java-разработчик + ИИ
</p>
<ul class="inset__text" style="color:#000!important; list-style:'\2022 ' outside; margin-left:20px;">
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Свободный график обучения</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Курс на 80% состоит из практики</li>
<li style="list-style:'\2022 '; padding-left:10px; margin-bottom:6px">
Нейросети в программе, чтобы быстрее писать и проверять код</li>
</ul>
<p class="inset__button article-advert-banner__link">
Подробнее
</p>
</div>
<div class="inset__image">
<img width="250" src="https://cdn.skillbox.pro/landgen/blocks/start-screen/384985/lg/b1d1fd93-6ae3-42eb-acf9-15ca4d0c26d1.webp" height="250" alt="">
</div>
</div>
</a>
</div>
</div>
</section> </section>
</section>
<div class="article-banner" data-banner="219298" data-source="200345" data-format="vertical" data-type="vertical">
<div class="row">
<div class="col-sm-4 col-sm-12">
<div class="inset__wrapper" style="background-color:#f2eeff;">
<div class="inset__content" >
<div class="inset__image" style="text-align: top;">
<img src="https://skillbox.ru/upload/setka_images/math-side.png" width="150" height="150" alt="">
</div>
<p class="inset__description" style="color:#000!important; padding-bottom:13px;">
Изучайте IT на практике — бесплатно</p>
<p class="inset__text" style="color:#000!important">
Курсы за <del>2990</del> 0 р. </p>
<ul class="inset__content" style="color:#007bff!important; list-style:'\2713 ' outside; margin-left:13px;">
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a data-source="200345" data-banner="219298" href="https://bootcamp.skillbox.ru/python-short/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-617_all_code_skillbox" target="_blank">Python</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/qa-start/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-655_all_code_skillbox" target="_blank">Тестирование</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/data-science/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-675_all_code_skillbox" target="_blank">Data Science</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/java/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-682_all_code_skillbox" target="_blank">Java</a>
</li>
<li style="list-style:'\2713 '; padding-left:2px; margin-bottom:6px">
<a href="https://bootcamp.skillbox.ru/sql/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-695_all_code_skillbox" target="_blank">SQL и работа с данными</a>
</li>
</ul>
<a href="https://bootcamp.skillbox.ru/it-jobs/?utm_source=media&utm_medium=banners&utm_campaign=all_all_media_banners_invite_bootcamp-759_all_code_skillbox" class="inset__button article-advert-banner__link" target="_blank" style="color:#000; background-color:#ffafff">Я не знаю, с чего начать</a>
</div>
</div>
</div>
</div> </div>
<a data-source="200345" data-banner="223376" target="_blank" href="https://skillbox.ru/course/profession-java/" class="article-banner article-advert-banner__link courseLink" style="background-color: #E9E9F5;" data-format="top" data-type="top" data-courseid="3522">
<div class="article-banner__img">
<img src="https://cdn.skillbox.pro/landgen/blocks/market/385163/lg/24f0f2c3-860c-4d7e-9ad0-1b65adf3f355.webp" alt="">
</div>
<span class="article-banner__title">Курс с трудоустройством: «<u>Профессия Java-разработчик + ИИ</u>»</span>
<span class="article-banner__link">Узнать о курсе</span>
</a>
<section class="container news">
<div class="row">
<div class="col-lg-8 col-sm-12">
<h2 class="news__header">Новости</h2>
<div class="row">
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/google-predstavil-gemini-31-pro-s-uluchshennymi-rassuzhdeniyami/" class="news__text">
Google представил Gemini 3.1 Pro с улучшенными рассуждениями </a>
<span class="news__date">20 фев 2026</span>
</div>
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/xai-dobavila-v-grok-multiagentnuyu-sistemu-s-chetyrmya-pomoschnikami/" class="news__text">
xAI добавила в Grok мультиагентную систему с четырьмя помощниками </a>
<span class="news__date">18 фев 2026</span>
</div>
<div class="col-xl-4 col-lg-6 col-md-4 col-12 news__item">
<a href="/media/code/openai-predstavila-gpt-53-codex-spark-prodvinutuyu-model-dlya-programmistov/" class="news__text">
OpenAI представила GPT-5.3-Codex-Spark — продвинутую модель для программистов </a>
<span class="news__date">13 фев 2026</span>
</div>
</div>
</div>
</div>
</section>
<div class="slider-news-wrap media-catalog-content media-catalog-content--interesting">
<div class="container">
<div class="slider-news slider-news--article-slider js-slider-news">
<div class="slider-news__header">
<div class="slider-news__title" style="font-family: 'Graphik'; font-weight: 500;">
<span class="slider-news__title-notmob">Это интересно</span>
<span class="slider-news__title-mob">Это интересно</span>
</div>
<div class="slider-news__nav-wrapper">
<div class="slider-news__nav-button button-prev swiper-button-disabled" tabindex="0" role="button" aria-label="Previous slide" aria-disabled="true">
<svg viewBox="0 0 9 15" width="9" height="15" class="icon">
<use xlink:href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron" href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron"></use>
</svg>
</div>
<div class="slider-news__nav-button button-next" tabindex="0" role="button" aria-label="Next slide" aria-disabled="false">
<svg viewBox="0 0 9 15" width="9" height="15" class="icon">
<use xlink:href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron" href="/static/svg/svg-symbols-site.svg#icon-arrow-chevron"></use>
</svg>
</div>
</div>
</div>
<div class="slider-news__carousel grad-end">
<div class="slider-news__container swiper-container swiper-container-initialized swiper-container-horizontal">
<div class="swiper-wrapper">
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/f1f/f1f05b73644b83a05ad3685325a98308/1668de27023f167b5952dda8f6448bab.jpg">
</picture> </div>
<a href="/media/code/chto-takoe-big-data/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Big data: что такое большие данные и как с ними работать </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/ea6/ea6a8323236c2561837dabaf3aaf6301/b1321ab07a64d09d9eba7a802ff1a19d.jpg">
</picture> </div>
<a href="/media/code/google-v-fevrale-2026-goda-vekovye-obligacii-privatnost-v-poiske-i-webmcp-dlya-agentov/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Google в феврале 2026 года: вековые облигации, приватность в поиске и WebMCP для агентов </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/83f/83f5fbe33b9cb70f84fd1bade3ba0200/5fec158e3ca8709d41cf5f5a4a0b8430.png">
</picture> </div>
<a href="/media/code/razrabotchiki-skupayut-mac-mini-na-it-rynke-peregrev-a-iz-tyurmy-vyshel-izvestnyy-kriptohaker/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Разработчики скупают Mac mini, на IT-рынке перегрев, а из тюрьмы вышел известный хакер </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/080/080d477242b414a3d2964960de55dcda/3fa556922b64473697f8960ca2f25218.png">
</picture> </div>
<a href="/media/code/story-yana-orlovceva/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
От пользователя до программиста 1С: история Яны Орловцевой </a>
</div>
</div>
<div class="slider-news__slide swiper-slide swiper-slide-active" style="margin-right: 20px;">
<div class="news-block__item">
<div class="news-block__img" style="margin-bottom: 8px;">
<picture>
<img src="https://248006.selcdn.ru/main/iblock/010/010725bb6a24b5d14ec80639eeb09031/ad6eb5f9c899b436ac21af1e7099be54.png">
</picture> </div>
<a href="/media/code/eslint-i-prettier/" class="news-block__title" style="font-family: 'Graphik'; font-size: 14px; line-height: 19px; -webkit-line-clamp: 4; font-weight: 500">
Гайд по ESLint и Prettier: от установки до автоматизации в VS Code </a>
</div>
</div>
</div>
<span class="swiper-notification" aria-live="assertive" aria-atomic="true"></span>
</div>
</div>
</div>
</div>
</div>
<div class="question">
<div class="container">
<div class="question__inner">
<div class="question__title">Понравилась статья?</div>
<a href="#" data-cur-url="/media/base/tip_boolean_i_operatory_sravneniya_v_java/"
class="question__btn js-modalLink" data-mfp-src="#modalAuth">Да</a>
</div>
</div>
</div>
</div>
<span
data-area="article-bottom"
data-current-url="/media/base/tip_boolean_i_operatory_sravneniya_v_java/"
data-id="200345">
</span>
</div>
<script type="application/ld+json">
{"@context":"http:\/\/schema.org","@type":"Article","url":"https:\/\/skillbox.ru\/media\/base\/tip_boolean_i_operatory_sravneniya_v_java\/","headline":"\u0422\u0438\u043f Boolean \u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432 Java","articleSection":"\u041a\u043e\u0434","articleBody":"Boolean — это тип данных, \r\nпеременные которого принимают одно из значений:\r\n\r\n- true (истина, «да», \r\nлогическая единица «1»);\r\n- false (ложь, «нет», \r\nлогический ноль «0»).\r\n\r\nБулевы переменные \r\nв Java создают так:\r\n\r\n\r\n\r\n\r\n\r\n\r\nboolean a = true; boolean b = false;\r\n\r\nЗначение типа \r\nboolean возвращают операции сравнения, логические операции и их сочетания. Выражения с ними — это по сути условные высказывания, которые могут быть правдивы или нет.\r\n\r\nОперация сравнения\r\n\r\nВ каждой операции \r\nсравнения участвуют два операнда. А выглядит она как обычное неравенство в математике. Например: a > b.\r\n\r\nОперация сравнения \r\nвозвращает:\r\n\r\n- значение true («истина»), \r\nесли высказывание с оператором правдивое (условие выполняется),\r\n- и false («ложь») — \r\nесли высказывание с оператором ложное (условие не выполняется).\r\n\r\nНапример, мы хотим \r\nсравнить в Java значения переменных a и b. Для этого используем оператор >, который возвращает булево значение (true или false).\r\n\r\na > b равно true, когда \r\nзначение переменной a больше значения переменной b (операнд слева от > больше правого), а иначе — false.\r\n\r\nПример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint a = 4; int b = 3; boolean c = a > b; System.out.println(c); --OUTPUT> \r\ntrue \r\n\r\nОператор > сравнил \r\nоперанд слева с операндом справа. Результат сравнения мы присвоили булевой переменной c.\r\n\r\nТак как 4 > 3 (высказывание \r\nправдиво), значение переменной c после выполнения кода станет равным true.\r\n\r\nОператоры сравнения \r\nв Java\r\n\r\nОдин оператор \r\nсравнения мы рассмотрели выше, а всего в Java их шесть:\r\nОператор сравнения \r\n Обозначение в Java Пример операции Результат операции \r\nМеньше < a < b true, \r\nесли операнд слева меньше правого, иначе false \r\nБольше > a > b true, \r\nесли операнд слева больше правого, иначе false \r\nМеньше или равно \r\n <= a <= b true, если операнд слева меньше правого или они равны, иначе false \r\nБольше или равно \r\n >= a >= b true, если операнд слева больше правого или равен ему, иначе false \r\nРавно == a == b true, если \r\nоперанд слева равен операнду справа \r\nНе равно != a != b true, \r\nесли операнд слева не равен операнду справа \r\n\r\n\r\nПримеры:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint a = 6; int b = 7; boolean c = a < b; System.out.println(c); --OUTPUT> \r\ntrue \r\n\r\n\r\n\r\n\r\n\r\n\r\nint a = 6; int b = 7; boolean c = a >= b; System.out.println(c); --OUTPUT> \r\nfalse \r\n\r\nГде нужны значения \r\nтипа Boolean\r\n\r\nБулевы значения \r\nи условные выражения часто используются в условиях операторов ветвления, тернарного оператора и циклов.Операторы ветвления\r\n\r\nОператор ветвления \r\nпозволяет выбрать и исполнить определённый блок кода в зависимости от срабатывания некоторого условия.\r\n\r\nЕсть два оператора \r\nветвления (условные конструкции): if-else и switch.\r\n\r\nОператор if\r\n\r\nЕго синтаксис \r\nвыглядит так:\r\n\r\n\r\n\r\nif (условие) {\r\n\r\n\/\/код\r\n\r\n} else {\r\n\r\n\/\/код\r\n\r\n}\r\n\r\n\r\n\r\n\r\nВ круглых скобках \r\nпосле if указывают условное выражение (высказывание). Если оно истинно (то есть результат его вычисления равен true), то выполняется код в фигурных скобках после условия, иначе выполняется код по ветке else (если она есть).\r\n\r\nПримеры:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (3 > 2) { System.out.println(\"Высказывание \r\nв скобках правдивое.\"); } --OUTPUT> Высказывание в скобках правдивое.\r\n\r\nПроверяем условие \r\nв круглых скобках:\r\n\r\n3 > 2?\r\n\r\nЕсли да, то в консоль \r\nвыводим: «Высказывание в скобках правдивое», иначе ничего не выводим.\r\n\r\nТак как 3 и правда \r\nбольше 2, то в консоли появилось наше сообщение.\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (3 < 2) { System.out.println(\"Высказывание \r\nв скобках правдивое.\"); } else { System.out.println(\"Высказывание в скобках ложное.\"); } --OUTPUT> Высказывание в скобках ложное. \r\n\r\nПечатаем «Высказывание \r\nв скобках правдивое», если результат вычислений в круглых скобках = true. В ином случае выводим: «Высказывание в скобках ложное».\r\n\r\nТак как выражение \r\n(3 < 2) возвращает false, то и в консоли видим: «Высказывание в скобках ложное».Вложенные конструкции\r\n\r\nДопустим, мы хотим \r\nпроверить некое условие, и если оно не выполнилось — проверить другое условие и так далее. Сделать это можно двумя способами.\r\n\r\n1. Вложенный if\r\n\r\nСинтаксис тут \r\nтакой:\r\n\r\n\r\n\r\nif (условие1) {\r\n\r\n\/\/действия, если \r\nусловие1 выполнено;\r\n\r\n} else {\r\n\r\nif (условие2) {\r\n\r\n\/\/действия, если \r\nусловие2 выполнено;\r\n\r\n}\r\n\r\n<…>\r\n\r\nelse {\r\n\r\n\/\/действия, если \r\nвсе предыдущие условия не выполнились;\r\n\r\n}\r\n\r\n\r\n\r\n\r\nПример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nboolean expression1 = 3 < 2; boolean expression2 = 5 > 4; if (expression1) \r\n{ System.out.println(\"Первое выражение правдивое.\"); } else { if (expression2) { System.out.println(\"Первое выражение ложное, а второе — правдивое.\"); } else { System.out.println(\"Оба выражения ложные.\"); } } --OUTPUT> Первое выражение ложное, а второе — правдивое.\r\n\r\n2. Конструкция \r\nelse if\r\n\r\nКаждое логическое \r\nусловие записывают через комбинацию else if, после которых в круглых скобках идёт альтернативное условие. Последний вариант (если ни одно из условий не сработало) записывается через else без условия.\r\n\r\nСинтаксически \r\nэто выглядит так:\r\n\r\n\r\n\r\nif (условие1) {\r\n\r\n\/\/действия, если \r\nусловие1 выполнено;\r\n\r\n}\r\n\r\nelse if (условие2) {\r\n\r\n\/\/действия, если \r\nусловие2 выполнено;\r\n\r\n}\r\n\r\nelse if (условие3) {\r\n\r\n\/\/действия, если \r\nусловие3 выполнено;\r\n\r\n}\r\n\r\n<…>\r\n\r\nelse {\r\n\r\n\/\/действия, если \r\nусловие последнего if тоже не выполнилось;\r\n\r\n}\r\n\r\n\r\n\r\n\r\nПример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nboolean statement1 = 3 < 2; boolean statement2 = 5 > 4; if (statement1) \r\n{ System.out.println(\"Первое высказывание правдивое.\"); } else if (statement2) { System.out.println(\"Первое высказывание ложное, а второе — правдивое.\"); } else { System.out.println(\"Оба высказывания ложные.\"); } --OUTPUT> Первое высказывание ложное, а второе — правдивое.\r\n\r\nКаждое следующее \r\nусловие проверяется только в том случае, если предыдущее не выполнилось. Как только найдётся одно правдивое условие (или мы достигнем последнего else), выполнится код в фигурных скобках после этого условия, а оставшаяся цепочка условий будет пропущена.\r\n\r\nИногда условий \r\nelse if нужно довольно много:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = 5; if (dayOfWeekNum == 1) { System.out.println(\"Понедельник\"); \r\n} else if (dayOfWeekNum == 2) { System.out.println(\"Вторник\"); } else if (dayOfWeekNum == 3) { System.out.println(\"Среда\"); } else if (dayOfWeekNum == 4) { System.out.println(\"Четверг\"); } else if (dayOfWeekNum == 5) { System.out.println(\"Пятница\"); } else if (dayOfWeekNum == 6) { System.out.println(\"Суббота\"); } else if (dayOfWeekNum == 7) { System.out.println(\"Воскресенье\"); } --OUTPUT> Пятница \r\n\r\nТакой код сложно \r\nвоспринимать: увеличение глубины вложенности быстро сделало его запутанным. Для таких случаев придуман оператор switch.Оператор множественного выбора (switch)\r\n\r\nОн применяется, \r\nкогда нужно выполнить один из нескольких блоков кода в зависимости от значения аргумента.\r\n\r\nВыгода от switch тем \r\nочевиднее, чем больше проверок и вариантов действий нам нужно.\r\n\r\nНапример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = 5; switch (dayOfWeekNum) { case 1: System.out.println(\"Понедельник\"); \r\nbreak; case 2: System.out.println(\"Вторник\"); break; case 3: System.out.println(\"Среда\"); break; case 4: System.out.println(\"Четверг\"); break; case 5: System.out.println(\"Пятница\"); break; case 6: System.out.println(\"Суббота\"); break; case 7: System.out.println(\"Воскресенье\"); break; } --OUTPUT> Пятница \r\n\r\nВ круглых скобках \r\nуказывается аргумент для switch, а в каждом блоке case — чему этот аргумент должен равняться, чтобы выполнился код после двоеточия.\r\n\r\nВ нашем случае \r\nвыполнится case 5, так как переменная dayOfWeekNum (порядок дня в неделе) равна 5.\r\n\r\nВ конце каждого \r\nблока case мы ставим break. Если этого не сделать, то выполнится также код из следующего блока case и так далее.\r\n\r\nНапример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = 6; switch (dayOfWeekNum) { case 1: System.out.println(\"Понедельник\"); \r\nbreak; case 2: System.out.println(\"Вторник\"); break; case 3: System.out.println(\"Среда\"); break; case 4: System.out.println(\"Четверг\"); break; case 5: System.out.println(\"Пятница\"); break; case 6: System.out.println(\"Суббота\"); case 7: System.out.println(\"Воскресенье\"); break; } --OUTPUT> Суббота --OUTPUT> Воскресенье \r\n\r\nЕсли для нескольких \r\nзначений аргумента нужно выполнять один и тот же код, то блоки case можно объединить.\r\n\r\nНапример, для \r\nбудних дней (dayOfWeekNum от 1 до 5) будем выводить, какой это по счёту рабочий день, а для уикенда — первый или второй это выходной:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = 3; switch (dayOfWeekNum) { case 1: case 2: case 3: case \r\n4: case 5: System.out.println(dayOfWeekNum + \"-й рабочий день\"); break; case 6: case 7: System.out.println(dayOfWeekNum-5 + \"-й выходной\"); break; } --OUTPUT> 3-й рабочий день \r\n\r\nТеперь при значении \r\nпеременной dayOfWeekNum от 1 до 5 выполнится один и тот же код, и для значений 6 и 7 — тоже одинаковый.\r\n\r\nТакже можно \r\nзадать действие, если ни одно из условий не сработало. Делается это с помощью ключевого слова default:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = 8; switch (dayOfWeekNum) { case 1: case 2: case 3: case \r\n4: case 5: System.out.println(dayOfWeekNum + \"-й рабочий день\"); break; case 6: case 7: System.out.println(dayOfWeekNum-5 + \"-й выходной\"); break; default: System.out.println(\"Такого по счёту дня в неделе нет.\"); } --OUTPUT> Такого по счёту дня в неделе нет.\r\n\r\n\r\nПримечание. \r\nСлово break означает выход из switch…case. Поэтому если ваш блок default стоит не последним, то тоже завершайте его словом break, иначе выполнится код из следующего case.Ограничения для оператора switch\r\n\r\nЕсть ряд условий, \r\nкоторые следует выполнять:\r\n- Тип значений \r\nв case должен соответствовать типу значения в switch.\r\n- Не поддерживаются \r\nтипы boolean, long, с плавающей запятой (double, float).\r\n- В case должны быть \r\nуказаны либо константы, либо выражения, значения которых компилятор сможет вычислить. \r\nНапример, компилятор \r\nсможет вычислить выражение (1 + 2 + 3) * 4 до запуска кода и подставит вместо него итоговое значение 24. А значение переменной или результат метода компилятор до запуска программы предсказать не может, поэтому ни переменную, ни метод подставлять в case нельзя.\r\n- Значения в case \r\nне могут повторяться, а default у каждого switch может быть только один.\r\n\r\nОбновлённый \r\nоператор switch в Java 14\r\n\r\nС версии 14 Java поддерживает \r\nновый синтаксис switch:\r\n\r\n\r\n\r\n\r\n\r\n\r\nswitch (value) { case val1 -> { \/\/код } case val2 \r\n-> { \/\/код } default -> { \/\/код } } \r\n\r\nТеперь нам не нужно \r\nписать break, а двоеточие заменено на стрелочку и фигурные скобки. Блок default по-прежнему не обязателен.\r\n\r\nЕсли код блока \r\ncase состоит всего из одной строки, то фигурные скобки можно не использовать:\r\n\r\n\r\n\r\n\r\n\r\n\r\nswitch (value) { case val1 -> \/\/код; case val2 -> \r\n\/\/код; default -> \/\/код; } \r\n\r\nВ операторе \r\nswitch прошлой версии мы задавали одно действие для нескольких значений case, располагая пустые case над case c кодом:\r\n\r\n\r\n\r\n\r\n\r\n\r\nswitch (value) { case val1: case val2: \/\/код break; } \r\n\r\nВ новой версии \r\nдля этого хватает одного case, а связанные с ним значения разделяются запятой. Например:\r\n\r\n\r\n\r\n\r\n\r\n\r\nstring dayOfWeek = \"Суббота\"; \r\nswitch (dayOfWeek) { case \"Понедельник\", \"Вторник\", \"Четверг\" -> System.out.println(\"Работа.\"); case \"Среда\" -> { System.out.println(\"Зенит рабочей недели.\"); System.out.println(\"Очень много работы.\"); } case \"Пятница\" -> System.out.println(\"Последний рабочий день перед выходными.\"); case \"Суббота\" -> System.out.println(\"Ура, первый выходной! Можно и поспать.\"); case \"Воскресенье\" -> { System.out.println(\"Остался последний выходной, пора готовиться к работе.\"); System.out.println(\"Но можно и поспать :)\"); } default -> System.out.println(\"Не знаю такого дня, но я бы поспал!\"); } --OUTPUT> Ура, первый выходной! Можно и поспать.\r\n\r\nТеперь switch — уже \r\nне просто оператор ветвления, он может вернуть значение. Это делается с помощью вспомогательного оператора yield.\r\n\r\nПример:\r\n\r\n\r\n\r\n\r\n\r\n\r\nstring dayOfWeek = \"Среда\"; int dayOfWeekNum \r\n= switch (dayOfWeek) { case \"Понедельник\": yield 1; case \"Вторник\": yield 2; case \"Среда\": System.out.println(\"Очень сложный день\"); yield 3; case \"Четверг\": yield 4; case \"Пятница\": yield 5; case \"Суббота\": yield 6; case \"Воскресенье\": yield 7; default: yield -1; }; System.out.println(dayOfWeekNum); --OUTPUT> Очень сложный день --OUTPUT> 3\r\n\r\nВ новой версии \r\nswitch, когда нам нужно лишь вернуть значение из соответствующего case (он должен быть без кода), — можно обойтись и без слова yield:\r\n\r\n\r\n\r\n\r\n\r\n\r\nint dayOfWeekNum = switch (dayOfWeek) { case \"Понедельник\" \r\n-> 1; case \"Вторник\" -> 2; case \"Среда\" -> { System.out.println(\"\"); yield 3; } case \"Четверг\" -> 4; case \"Пятница\" -> 5; case \"Суббота\" -> 6; case \"Воскресенье\" -> 7; default -> -1; };Советы и упрощения\r\n\r\n1. Фигурные скобки \r\nпосле if или else разрешено не ставить, если тело блока состоит всего из одной строки.\r\n\r\nОднако всё же \r\nсоветую ставить скобки, так вы научитесь быть последовательными и облегчите рефакторинг кода.\r\n\r\n2. Вот так писать \r\nне следует (внимание на условие в if):\r\n\r\n\r\n\r\n\r\n\r\n\r\npublic boolean isMoreFive(int a) { return a > 5; } if (isMoreFive(3) \r\n== true) { \/\/код } \r\n\r\nКод будет работать, \r\nно сравнение boolean с boolean в условии — это лишняя операция.\r\n\r\nПоскольку метод \r\nisMoreFive сам возвращает булево значение — напишите вот так:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (isMoreFive(3)) { \/\/код } \r\n\r\nЗдесь снова \r\nненужное сравнение:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (isMoreFive(3) == false) { \/\/код } \r\n\r\nЧтобы не было \r\nлишней операции — пишите вот так:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (!isMoreFive(3)) { \/\/код } \r\n\r\nУсловие по-прежнему \r\nвыполняется, когда isMoreFive возвращает false, однако от бессмысленного сравнения мы избавились.\r\n\r\nТернарный оператор\r\n\r\nТернарный оператор — \r\nэто лаконичная замена if-else. Он возвращает вместо себя одно из выражений в зависимости от истинности условия (логического высказывания).\r\n\r\nСинтаксис тернарного \r\nоператора:\r\n\r\n\r\n\r\nусловие ? выражение1 \r\n: выражение2\r\n\r\n\r\n\r\n\r\nЕсли условие \r\nвыполняется, то оператор возвращает выражение1, иначе — выражение2. Значения возвращаемых выражений могут быть любого типа.\r\n\r\nПримеры:\r\n\r\n\r\n\r\n\r\n\r\n\r\nString str = 3 > 2 ? \"Условие \r\nвыполняется\" : \"Условие не выполняется\"; System.out.println(str); --OUTPUT> Условие выполняется \r\n\r\nКак записать \r\nто же самое с if:\r\n\r\n\r\n\r\n\r\n\r\n\r\nString str; if (3 > 2) { str = \"Условие \r\nвыполняется\"; } else { str = \"Условие не выполняется\"; } System.out.println(str); --OUTPUT> Условие выполняется \r\n\r\nКак видно, вариант \r\nс тернарным оператором намного короче.\r\n\r\nТернарные операторы \r\nдопустимо вкладывать друг в друга:\r\n\r\n\r\n\r\n\r\n\r\n\r\nString str = 3 > 2 ? (5 < 4 ? \"Оба условия \r\nвыполняются\" : \"Второе условие не выполняется\") : \"Первое условие не выполняется\"; System.out.println(str); --OUTPUT> Второе условие не выполняется \r\n\r\nИ то же самое \r\nс помощью if:\r\n\r\n\r\n\r\n\r\n\r\n\r\nString str; if (3 > 2) { if (5 < 4) { str = \"Оба \r\nусловия выполняются\"; } else { str = \"Второе условие не выполняется\"; } } else { str = \"Первое условие не выполняется\"; } System.out.println(str); --OUTPUT> Второе условие не выполняется \r\n\r\nКонечно, так \r\nдлиннее — но и читабельнее.\r\n\r\nОператор instanceof\r\n\r\nЕсть ещё один \r\nоператор, который возвращает булево значение, — это instanceof.\r\n\r\nОн проверяет \r\nпринадлежность переменной к какому-то классу.\r\n\r\nКогда используют \r\ninstanceof?\r\n\r\nЕсли классы \r\nобъектов нужно узнать во время выполнения программы.\r\n\r\nДопустим, есть \r\nдва потока исполнения. В первом создаются объекты разных классов, а в другом они используются. С instanceof легко выяснять класс каждо­го объекта, который получает второй поток.\r\n\r\nКласс объекта \r\nважно знать и для приведения типов. Хотя большинство подобных проблем выявляет компилятор, но приведение типов при иерархии классов чревато ошибками, которые всплывают только во вре­мя работы.\r\n\r\nВообще, instanceof используется \r\nредко, потому что обычно типы объектов известны сразу. Применять этот оператор считается дурным тоном, это признак плохой программной архитектуры. Но его используют в обобщённых процедурах, которые оперируют объектами из сложной ие­рархии классов.Как работать с instanceof\r\n\r\nРассмотрим \r\nна примере:\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass A {} class B extends A {} class C {} A a = new A(); \/\/объект \r\nотносится только к классу A B ba = new B(); \/\/объект относится к классам A и B C c = new C(); \/\/объект относится только к классу C System.out.println(a instanceof A); System.out.println(bа instanceof A); System.out.println(ba instanceof B); System.out.println(a instanceof B); System.out.println((Object) c instanceof A); System.out.println(c instanceof C); --OUTPUT> true --OUTPUT> true --OUTPUT> true --OUTPUT> false --OUTPUT> false --OUTPUT> true \r\n\r\nОбъект c принадлежит \r\nтолько к классу C. Нам пришлось привести его к классу Object, чтобы можно было проверить на соответствие классу A.\r\n\r\nИначе компилятор \r\nсразу бы увидел, что объект класса C не принадлежит к классу A, — и не дал бы запустить программу с ошибкой несовместимости типов:\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass A {} class C {} A a = new A(); \/\/объект \r\nпринадлежит только классу A C c = new C(); \/\/объект принадлежит только классу C System.out.println(c instanceof A); --OUTPUT> <...> error: incompatible types: C cannot be converted to A <...> Упрощённый оператор instanceof в Java 15\r\n\r\nРаньше был допустим \r\nтолько такой синтаксис:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (object instanceof Type) { Type t = (Type) object; \/\/код \r\n} \r\n\r\nТо есть мы сначала \r\nпроверяем, что object может быть приведён к какому-то типу Type, — это и делает оператор instanceof, а внутри условия приводим объект к этому типу и записываем результат в новую переменную.\r\n\r\nВ Java 15 появилась \r\nконструкция упрощённого приведения:\r\n\r\n\r\n\r\n\r\n\r\n\r\nif (object instanceof Type t) { \/\/код } \r\n\r\nМы проверили, \r\nчто object можно привести к Type, и сразу в условии привели его к этому типу, а результат записали в переменную t. Эту переменную можно использовать внутри блока if.\r\n\r\nЧто дальше?\r\n\r\nСперва подытожим:\r\n\r\n- мы познакомились \r\nс типом Boolean;\r\n- рассмотрели \r\nоператоры сравнения <, >, <=, >=, ==, !=, а также instanceof;\r\n- изучили операторы \r\nветвления if, switch и тернарный оператор.\r\n\r\nПора рассмотреть \r\n условные выражения, включающие не только операторы сравнения, но и логические операторы.\r\n\r\n\r\n\r\n\r\nКак его только \r\nни зовут: и булев, и булевый, и булевский, а иногда просто — логический тип данных.\r\n\r\n\r\nНазван он в честь \r\nанглийского математика середины XIX века Джорджа Буля (George Boole), одного из отцов математической логики.\r\n\r\n\r\n\r\n\r\nОперандом (от англ. \r\noperand) в языках программирования называют аргумент операции (выражения для вычисления), но не аргумент команды или метода.\r\n\r\n\r\n\r\n\r\nВ переводе с английского — \r\n«переключатель».\r\n\r\n\r\n\r\n\r\nРефакторинг \r\n(перепроектирование\/переработка) — переделка кода, которая облегчает его понимание, но не отражается на поведении программы.\r\n\r\n\r\n\r\n\r\nТернарный — \r\nзначит «тройной», принимающий сразу три операнда.","author":{"@type":"Person","name":"\u0410\u0440\u0442\u0451\u043c \u0410\u0432\u0434\u0435\u0435\u0432","url":"https:\/\/skillbox.ru\/media\/authors\/artem-avdeev\/"},"publisher":{"@type":"Organization","name":"Skillbox","logo":{"@type":"ImageObject","url":"https:\/\/skillbox.ru\/static\/images\/skillbox.png"}},"mainEntityOfPage":{"@type":"WebPage","url":"https:\/\/skillbox.ru\/media\/base\/tip_boolean_i_operatory_sravneniya_v_java\/"},"datePublished":"2021-03-09T10:00:00Z","dateModified":"2022-07-27T08:18:55Z","image":{"@type":"ImageObject","url":["https:\/\/248006.selcdn.ru\/main\/iblock\/e2a\/e2a8b33af87a43b335f89e9e4c0ccbc7\/afe8c5ace55bada3cb096aa2faceeff1.png"]},"description":"\u0423\u0437\u043d\u0430\u0451\u043c \u043f\u0440\u043e \u0431\u0443\u043b\u0435\u0432 \u0442\u0438\u043f, \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f, \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 if-else, switch \u0438 \u0442\u0435\u0440\u043d\u0430\u0440\u043d\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440. \u041e\u0441\u043c\u044b\u0441\u043b\u044f\u0435\u043c instanceof. \u0412\u0441\u0451 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0438 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438."}
</script><script data-skip-moving="true" id="FiMjZmipVK5U4ODg">if (window.relap) window.relap.ar('FiMjZmipVK5U4ODg');</script> </div>
</div>
</main>
<footer class="without-buttons">
<div class="footer__wrapper container">
<div class="footer__firstgroup">
<section class="footer__contactbox">
<address class="footer__contacts">
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74951540915">8 (800) 500-05-22</a>
<span class="footer__phone-caption">Контактный центр</span>
</p>
<p class="footer__contacts-block">
<a class="footer__phone link" href="tel:+74952915987">+7(495) 291-59-87</a>
<span class="footer__phone-caption">Отдел заботы о пользователях</span>
</p>
<p class="footer__address"> Москва, Ленинский проспект, дом 6, строение 20</p>
</address>
<ul class="social-contacts footer__social">
<li>
<a class="social-contacts__item" href="https://vk.com/skillbox_education"
aria-label="Вконтакте">
<img src="/static/images/footer/soc_vk.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item"
href="https://www.youtube.com/channel/UC2FJq-Rr7v4SlKAoM7x0ZhA" aria-label="YouTube">
<img src="/static/images/footer/soc_tube.svg"/>
</a>
</li>
<li>
<a class="social-contacts__item" href="tg://resolve?domain=skillboxru"
aria-label="Telegram">
<img src="/static/images/footer/soc_tg.svg"/>
</a>
</li>
</ul>
<div class="footer__age-limit">
16+
</div>
</section>
<section class="footer__rewardbox">
<ul class="rewards footer__rewards">
<li>
<span class="rewards__item">
<img src="/static/images/footer/footer_runet.svg" alt=""/>
<span>Премии Рунета</span>
<span>2018, 2019, 2020</span>
</span>
</li>
</ul>
</section>
</div>
<section class="footer__linksbox">
<ul class="links__list links__list--courses">
<li class="links__item links__item--header">Все направления</li>
<li class="links__item"><a href="/code/?utm_source=media&utm_medium=button&utm_campaign=footerlink_code&utm_term=footer">Программирование</a></li>
<li class="links__item"><a href="/design/?utm_source=media&utm_medium=button&utm_campaign=footerlink_design&utm_term=footer">Дизайн</a></li>
<li class="links__item"><a href="/marketing/?utm_source=media&utm_medium=button&utm_campaign=footerlink_marketing&utm_term=footer">Маркетинг</a></li>
<li class="links__item"><a href="/management/?utm_source=media&utm_medium=button&utm_campaign=footerlink_management&utm_term=footer">Управление</a></li>
<li class="links__item"><a href="/games/?utm_source=media&utm_medium=button&utm_campaign=footerlink_gamedev&utm_term=footer">Игры</a></li>
<li class="links__item"><a href="/multimedia/?utm_source=media&utm_medium=button&utm_campaign=footerlink_multimedia&utm_term=footer">Мультимедиа</a></li>
<li class="links__item"><a href="/psychology/?utm_source=media&utm_medium=button&utm_campaign=footerlink_psychology&utm_term=footer">Психология</a></li>
<li class="links__item"><a href="/general-development/?utm_source=media&utm_medium=button&utm_campaign=footerlink_general-development&utm_term=footer">Общее развитие</a></li>
<li class="links__item"><a href="/engineering/?utm_source=media&utm_medium=button&utm_campaign=footerlink_engineering&utm_term=footer">Инженерия</a></li>
<li class="links__item"><a href="/english/?utm_source=media&utm_medium=button&utm_campaign=footerlink_english&utm_term=footer">Английский язык</a></li>
<li class="links__item"><a href="/other/?utm_source=media&utm_medium=button&utm_campaign=footerlink_other&utm_term=footer">Другое</a></li>
</ul>
<ul class="links__list links__list--about">
<li class="links__item links__item--header">О Skillbox</li>
<li class="links__item"><a href="/company/?utm_source=media&utm_medium=button&utm_campaign=footerlink_aboutskillbox&utm_term=footer">О Платформе</a></li>
<li class="links__item"><a href="/career/?utm_source=media&utm_medium=button&utm_campaign=footerlink_careercentr&utm_term=footer"> Центр карьеры</a></li>
<li class="links__item"><a href="/otzyvy/?utm_source=media&utm_medium=button&utm_campaign=footerlink_testimonials&utm_term=footer">Отзывы</a></li>
<li class="links__item"><a href="/contacts/?utm_source=media&utm_medium=button&utm_campaign=footerlink_skillboxcontacts&utm_term=footer">Контакты</a></li>
<li class="links__item"><a href="/jobs/?utm_source=media&utm_medium=button&utm_campaign=footerlink_jobs&utm_term=footer">Вакансии</a></li>
<li class="links__item"><a href="/teachers/?utm_source=media&utm_medium=button&utm_campaign=footerlink_school&utm_term=footer">Школа кураторов</a></li>
<li class="links__item"><a href="/sale/free/?utm_source=media&utm_medium=button&utm_campaign=footerlink_free&utm_term=footer">Бесплатно</a></li>
<li class="links__item"><a href="/media/topic/tests/?utm_source=media&utm_medium=button&utm_campaign=footerlink_tests&utm_term=footer">Онлайн-тесты</a></li>
</ul>
<ul class="links__list links__list--webinar">
<li class="links__item links__item--header">Вебинары</li>
<li class="links__item"><a href="https://live.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_webinars&utm_term=footer" target="_blank" rel="noopener">Все вебинары</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/playlists/?utm_source=media&utm_medium=button&utm_campaign=footerlink_playlists&utm_term=footer" target="_blank" rel="noopener">Плейлисты</a></li>
<li class="links__item"><a href="https://live.skillbox.ru/calendar/?utm_source=media&utm_medium=button&utm_campaign=footerlink_schedule&utm_term=footer" target="_blank" rel="noopener">Расписание</a></li>
</ul>
<ul class="links__list links__list--last">
<li class="links__item links__journal"><a href="/media/" target="_blank" rel="noopener">Медиа</a></li>
<li class="links__item"><a href="https://partners.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_partners&utm_term=footer" target="_blank" rel="noopener">Партнерская программа</a></li>
<li class="links__item"><a href="https://b2b.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_b2b&utm_term=footer" target="_blank" rel="noopener">Корпоративным клиентам</a></li>
<li class="links__item"><a href="https://career.skillbox.ru/?utm_source=media&utm_medium=button&utm_campaign=footerlink_employees&utm_term=footer" target="_blank" rel="noopener">Для работодателей</a></li>
</ul>
</section>
</div>
<div class="footer__underline container">
<span class="footer__copy">
© Skillbox, 2026 </span>
<div>
<span class="footer__oferta">
<a href="/oferta.pdf" target="_blank">Договор оферты</a>
</span>
<span class="footer__payment">
<a href="/payments/" target="_blank">Оплата</a>
</span>
<span class="footer__use-policy">
<a href="/terms_of_use.pdf" target="_blank">Правила пользования Платформой</a>
<a href="/privacy_policy.pdf" target="_blank">Политика конфиденциальности</a>
</span>
</div>
</div>
</footer>
<div class="cookies">
<p class="cookies__desc">
Пользуясь нашим сайтом, вы соглашаетесь с тем, что
<a href="https://skillbox.ru/privacy_policy.pdf" target="_blank" rel="noopener"
type="application/pdf">мы используем cookies</a> 🍪
</p>
<button type="button" class="cookies__button">
Окей
</button>
</div>
<div class="subscribe-popup subscribe">
<div class="subscribe-popup__spacer-mobile"></div>
<div class="subscribe-popup__row-content ">
<button class="subscribe__close"></button>
<div class="subscribe__content">
<div data-subscribe-popup-success class="hidden">
<h2 class="subscribe__header-success">Спасибо за подписку! Забирайте 5 бесплатных курсов:</h2>
<ul class="subscribe__list-block">
<li>Найти себя в IT за 5 дней</li>
<li>Как найти себя в дизайне в 2025 году</li>
<li>Интерьеры, мебель, ландшафт и декорирование</li>
<li>Интернет-маркетинг на практике</li>
<li>Бизнес-аналитик, продакт- и проджект-менеджер</li>
</ul>
<div class="subscribe__btns-el">
<a
target="_blank"
href="https://refer.id/?bot=skillbox_main_bot&platform=telegram&verbose_name=Skillbox&bot_avatar=https://designer.ftrcdn.com/uploads/bot_avatars/medium_54ab1ce8c393eb3df1474846ce0a0e2c.png&n=137050&c=9209&bc_number=890&?utm_source=media&utm_medium=&utm_campaign=all_all_media_banners_invite_sbornik-890_all_bot_skillbox"
class="subscribe__el-btn">Получить доступ</a>
</div>
</div>
<div data-subscribe-popup-content>
<h2 class="subscribe__header">У нас есть классные рассылки!</h2>
<form action="/media/base/tip_boolean_i_operatory_sravneniya_v_java/" class="newsletter-form page-subscription__form3" data-type="popup">
<input type="hidden" name="action" value="subscribe">
<div class="subscribe__checkboxes"></div>
<div class="subscribe__email email_popup">
<input class="subscribe-form__input" type="text" name="email" placeholder="Email" >
<span class="subscribe-form__label-name">Электронная почта</span>
<button type="submit" class="popup-btn-click">Подписаться</button>
<span class="email__error">Поле необходимо заполнить</span>
</div>
<div class="subscribe-popup__checkbox-end">
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data>
<div class="subscribe__checkbox">
<input type="checkbox" name="agreements[PERS]" id="isCheckTrue" value="1" data-checkbox-personal-data-input>
<label for="isCheckTrue"><span>Я согласен на <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/privacy_policy/version-290425.pdf">обработку персональных данных</a></span></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
<div class="subscribe__bottom">
<span>Нажимая на кнопку, я соглашаюсь с <a target="_blank" href="https://skillbox.ru/legal-docs/skillbox/file/terms_of_use/version-300824.pdf">правилами пользования Платформой</a></span>
</div>
<div class="subscribe-popup__checkbox-item" data-checkbox-personal-data-two>
<div class="subscribe__checkbox subscribe__checkbox--end" >
<input type="checkbox" name="agreements[ADS]" id="isAdsCalls" value="1" checked="" data-checkbox-personal-data-input-two>
<label for="isAdsCalls">Я согласен <a target="_blank" href="https://skillbox.ru/legal-docs/chou/file/soglasie-na-poluchenie-reklamy.pdf">получать рекламу и звонки</a></label>
</div>
<span class="email__error">Нужно ваше согласие</span>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- src="/static/images/articles/subscribe-popup-img.png" -->
</div>
<div class="bg-modal-overlay bg-modal-overlay--transparent"></div>
<script data-skip-moving="true" id="popup__data--formatted">
$(".popup-btn-click").on("click" , function (){
var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
let input = $(this).closest(".subscribe__email").find(".subscribe-form__input");
let inputValue = input.val();
if(emailPattern.test(inputValue)) {
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() { rrApi.setEmail(inputValue);});
}
});
/*
window.popupData = {
"8": {
header: 'У нас есть классные рассылки про дизайн!!!',
category: 'Дизайн',
checkboxes: [
'Лучшие статьи про Дизайн',
'«Типографика без боли»'
]
},
"10": {
header: 'У нас есть классные рассылки про код',
category: 'Код',
checkboxes: [
'Лучшие статьи про Код и Людей кода',
'«Жизнь без багов»'
]
},
"18": {
category: 'Геймдев',
checkboxes: []
},
"21": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Бизнес',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"9": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Маркетинг',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"11": {
header: 'У нас есть классные рассылки про бизнес',
category: 'Управление',
checkboxes: [
'Лучшие статьи про Бизнес',
'«Цифровая жизнь»',
'«EdTech по полочкам»'
]
},
"17": {
category: 'Развитие',
checkboxes: []
},
"22": {
header: 'У нас есть классные рассылки про образование',
category: 'Образование',
checkboxes: [
'Лучшие статьи про Образование',
'«EdTech по полочкам»',
'«Мой успешный онлайн-курс»'
]
},
}
*/
window.popupData = {"header":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 - \u043d\u0430 \u043f\u043e\u0447\u0442\u0443!\u003Cbr\/\u003E\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u043c\u0443 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\u003Cbr\/\u003E\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 5 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u0443\u0440\u0441\u043e\u0432:","category":"\u0411\u0430\u0437\u0430 \u0437\u043d\u0430\u043d\u0438\u0439","checkboxes":{"23":"\u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442","24":"\u041c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","26":"\u041a\u043e\u0440\u043f. \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","13":"\u0414\u0438\u0437\u0430\u0439\u043d","16":"\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","15":"\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","17":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0438\u0433\u0440","18":"\u041f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044f, \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e"},"code":"base","scroll":false};
window.subscribePopupShow = 1;
</script>
<div class="copied">
<img src="/static/images/articles/done-circle.svg" alt="" class="copied__icon">
<p class="copied__text">
Ссылка скопирована
</p>
</div>
<!-- <style>@font-face{font-display:swap;font-family:Graphik;font-weight:500;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Medium.woff2) format("woff2")}@font-face{font-display:swap;font-family:Graphik;font-weight:700;font-style:normal;src:url(https://248006.selcdn.ru/Shared/fonts/GraphikLCTT-VA-Bold.woff2) format("woff2")}.universal-notice{box-sizing:border-box;text-decoration:none;display:none;min-height:48px;color:var(--banner-color);background-color:var(--banner-bg);overflow:hidden;font-family:Graphik,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.universal-notice *{box-sizing:inherit}.universal-notice.universal-notice--active{display:block}.universal-notice--bitrix{z-index:1000}.universal-notice__wrapper{position:relative;-webkit-box-pack:start;justify-content:flex-start;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;margin-left:12px;padding:4px 0}.universal-notice__title{position:relative;flex-shrink:0;width:132px;margin-right:27px;font-size:14px;line-height:20px;text-transform:uppercase}.universal-notice__timer{display:none;margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.universal-notice__button{flex-shrink:0;min-width:120px;padding:8px 12px;border-radius:25px;font-weight:500;font-size:12px;line-height:16px;color:#3925b7;text-align:center;text-transform:uppercase;background-color:#ffa6a6}@media (min-width:768px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:768px) and (max-width:0px){.universal-notice{min-height:72px}.universal-notice__wrapper{-webkit-box-pack:center;justify-content:center;height:72px;margin:0}.universal-notice__title{width:252px;margin-right:32px;margin-left:20px;font-size:24px;line-height:32px}.universal-notice__button{min-width:200px;margin-right:20px;padding:14px 36px;font-size:16px;line-height:20px}}@media (min-width:1280px) and (max-width:0px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}@media (min-width:1280px){.universal-notice__wrapper{padding:0}.universal-notice__title{width:unset;margin-right:76px}.universal-notice__timer{flex-shrink:0;margin-right:32px;font-weight:700;font-size:24px;line-height:32px}.universal-notice__timer.js-universal-notice-active{display:-webkit-box;display:flex}.universal-notice__days{margin-right:5px}}</style>-->
</body>
</html>