undefined

Сравниваем и ставим условия

Java Syntax
4 уровень , 6 лекция
Открыта

— Хочу рассказать тебе немного о сравнении переменных в Java.

— Самые простые операторы сравнения ты уже знаешь – это меньше (<) и больше (>).

— Ага.

— Так же есть «равно»(==) и «не равно»(!=). А еще «меньше либо равно»(<=) и «больше либо равно»(>=).

— О, это уже интереснее.

— Обрати внимание, что операторов «=<» и «=>» в Java нет!

— Знак «=» используется для операции присваивания, поэтому для равенства используют «==» — два знака равно. Для того, чтобы проверить, что переменные не равны, используют «!=»

— Ясно.

— При сравнении двух переменных в Java с использованием оператора «==», происходит сравнение того, что эти переменные в себе содержат.

— Т.е. для переменных примитивных типов происходит сравнение значений.

— Для переменных ссылочных типов происходит сравнение ссылок. Т.е. если объекты идентичны внутри, но ссылки на них разные, сравнение покажет, что они неравны: результатом сравнения будет false(ложь). Сравнение ссылок будет true(истина), только если обе ссылки указывают на один и тот же объект.

— Для сравнения объектов можно использовать специальный метод equals(). Этот метод (и все методы класса Object) добавляется компилятором в твой класс, даже если ты их не объявляешь. Поясню на примерах:

Код Пояснение
1
int a = 5;
int b = 5;
System.out.println(a == b);
Происходит сравнение примитивных типов.
На экран будет выведено true.
2
Cat cat1 = new Cat("Vaska");
Cat cat2 = cat1;
System.out.println(cat1 == cat2);
Происходит сравнение ссылок.
На экран будет выведено true.
Обе переменных хранят ссылки на один и тот же объект.
3
String s = new String("Mama");
String s2 = s;
System.out.println(s == s2);
Происходит сравнение ссылок.
На экран будет выведено true.
Обе переменных хранят ссылки на один и тот же объект.
4
Cat cat1 = new Cat("Vaska");
Cat cat2 = new Cat("Vaska");
System.out.println(cat1 == cat2);
Происходит сравнение ссылок.
На экран будет выведено false.
Переменные хранят ссылки на два идентичных объекта Cat, но не на один и тот же.
5
String s = new String("Mama");
String s2 = new String("Mama");
System.out.println(s == s2);
Происходит сравнение ссылок.
На экран будет выведено false.
Переменные хранят ссылки на два идентичных объекта String, но не на один и тот же.
6
Cat cat1 = new Cat("Vaska");
Cat cat2 = new Cat("Vaska");
System.out.println(cat1.equals(cat2));
Происходит сравнение объектов.
Если в классе Cat не переопределен метод equals(), на экран будет выведено false.
Переменные хранят ссылки на два идентичных объекта Cat, но не на один и тот же.
7
String s = new String("Mama");
String s2 = new String("Mama");
System.out.println(s.equals(s2));
Происходит сравнение объектов.
На экран будет выведено true.
Переменные хранят ссылки на два идентичных объекта String.

— И, кстати, едва не забыл! Вот тебе несколько заданий:

undefined
4
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Минимум двух чисел Ӏ Java Syntax: 4 уровень, 6 лекция
Все алгоритмы поиска и сортировки построены на сравнениях. Совсем скоро вы сможете ими заняться, если будет такое желание. А пока предлагаем начать с малого: написать программу для поиска минимального из двух чисел. Найти, а затем вывести на экран. Ну а если числа одинаковы, вывести любое из них.
undefined
4
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Максимум четырех чисел
Максимумом называется n-арная операция (операция над n числами), возвращающая наибольшее из чисел. Нет, нам в секретном центре JavaRush совсем не обязательно знать такие определения. Мы тут для того, чтобы учиться писать код. В этой задаче нужно ввести с клавиатуры четыре числа, затем — вычислить наибольшее из них и вывести его на экран.
undefined
8
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Сортировка трех чисел
На планете Линейный Хаос живут изоморфы. Говорят, именно они изобрели методы сортировки и у них в голове все чрезвычайно упорядочено. Визы на их планету они выдают только тем, кто знает не менее 7 методов сортировки. Сделаем первый шаг к Линейному Хаосу: упорядочим три введенные с клавиатуры числа по убыванию, а затем выведем их на экран.
undefined
4
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Настя или Настя?
Настя, админ компании Икс, выучилась на пилота космокорабля и улетела от них на другую планету. Люди в компании Икс — хорошие и душевные, только рассеянные и имена путают. Поэтому было принято решение, что нового админа тоже будут звать Настя. Поможем компании Икс найти их Настю: напишем программу, проверяющую идентичность двух введенных имён.
undefined
2
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
18+
Существует ли ребёнок, который бы закрыл сайт после того, как ему сообщили, что его содержимое не предназначено для тех, кому меньше 18? Невзирая на нулевую эффективность, такую «проверку» возраста до сих пор используют. Напишем программу, которая задает вопрос про количество прожитых лет, и если ответ <18, выводит надпись «Подрасти еще».
undefined
2
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Фейс-контроль
Ночной клуб «Целомудрие» заказал компании ИКС изготовить автоматического вышибалу. Джуниор-разработчику (вам) поручили написать для него метод идентификации посетителя с проверкой возраста. Потенциальный гость должен ввести с клавиатуры имя и возраст. Если возраст 20 или больше, автовышибала должен заверить гостя, что всё ок, и 18 лет вполне достаточно.
undefined
4
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Три числа
Ввод с клавиатуры, сравнение чисел и вывод на экран — у студентов 4 уровня секретного центра JavaRush эти навыки оттачиваются до автоматизма. Давайте напишем программу, в которой пользователь вводит три числа с клавиатуры. Затем происходит сравнение, и если мы находим число, которое отличается от двух других, выводим на экран его порядковый номер.
undefined
2
Задача
Java Syntax,  4 уровень,  6 лекция
Недоступна
Цель установлена!
Военного робота оснастили прицелом, с помощью которого он может сбивать вражеские жестянки. Для этого осведомитель передает ему координаты противника на плоскости (широту и долготу). Напишем программу, которая помогает роботу вычислить, в какой из координатных четвертей находится вражеская жестянка.
Комментарии (1066)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Дима 7 уровень, Комсомольск-на-Амуре
21 апреля 2021
Почему в последнем примере true, если как было только что сказано выше S и S2 хранят сцылки на два идент. объекта, но не на один ведь? Значит примером выше такая же ситуация false, а в последнем чудесным образом true
Vait220 5 уровень, Одесса
18 марта 2021
те кто делали этот сайт гении!
Maks Panteleev 23 уровень, Москва
11 марта 2021
Забавно, что лекция про арифметически операторы идет после целой горы задач на их использование))
Ivan 10 уровень
24 февраля 2021
int min = number1 < number2 ? number1 : number2; Что значит "?"?
Katya 10 уровень, Минск
22 февраля 2021
Отличная статья про equals() и сравнение строк https://javarush.ru/groups/posts/equals-java-sravnenie-strok
Alex 6 уровень
28 января 2021
Equals и сравнение строк. Вот здесь описание
Alex 6 уровень
28 января 2021
Товарищи подскажите, я правильно понимаю 4-й и 6-й пример идентичны по результату Cat cat1 = new Cat("Vaska"); Cat cat2 = new Cat("Vaska"); System.out.println(cat1 == cat2); идентичен по результату false Cat cat1 = new Cat("Vaska"); Cat cat2 = new Cat("Vaska"); System.out.println(cat1.equals(cat2)); при этом 5-й и 7- примеры не идентичны и это особенности String String s = new String("Mama"); String s2 = new String("Mama"); System.out.println(s == s2); false String s = new String("Mama"); String s2 = new String("Mama"); System.out.println(s.equals(s2)); true
Flexo 35 уровень, New New York
25 января 2021
Сравнение по методу equals определяет идентичные объекты, но не одинаковые — как false. Это справедливо для всех сложных объектов, кроме String?
Михаил 5 уровень
24 января 2021
Предпоследнюю задачe про сравнение трех чисел решал с помощью массива - потратил кучу времени и чуть с ума не сошел, пока правильно организовал проверки в циклах. Не повторяйте моих ошибок, не используйте массив и циклы for и foreach 🤪
Ihar Valynets 7 уровень, Минск
20 января 2021
Эх, жаль на этот момент не знаю, как описывать массивы в Java. Сортировка через них осуществляется гораздо грамотнее (тем же методом пузырьков). А тут приходится говнокодить через if-ы :-(