Где-то я нашла этот код? Почему ОН сработал?
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int a = number;
if (number % 400 == 0 || number % 4 == 0 && number % 100 != 0)
{ System.out.println("количество дней в году: " + 366); }
else System.out.println("количество дней в году: " + 365);
Вот этой части когда я не понимаю совсем. Почему в else нету скобок {}???
Почему % 100 ! = 0 с этим знаком "!"?
Как этот код работает???
Если остача от 400 или 4 равна 0 и остача от 100 тоже равна 0, то выходит высокосный год. Но ведь у года 100 остача от 400 или 4 тоже равна нулю, это условие, соответственно, не соблюдается. Почему тогда он рабочий? Почему???
if (number % 400 == 0 || number % 4 == 0 && number % 100 != 0)
{ System.out.println("количество дней в году: " + 366); }
else System.out.println("количество дней в году: " + 365);
София
11 уровень
Почему?
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис
21 декабря 2019, 00:47
Остача... Не знал такого слова 🙂 Явно удобней чем "остаток от деления". И короче. Пригодится )
Ну а на все вопросы уже Алексей ответил :)
0
Алексей Backend Developer
20 декабря 2019, 20:06
если всего одна инструкция, то можно без скобок.
не равно
0
София
21 декабря 2019, 05:39
Спасибо!
0
София
21 декабря 2019, 18:04
Хотелось бы спросить. По условию задачи остача от 400 равна нулю. Но как тогда с ней может совмещаться эта фраза 100!=0?
0
Ksenia Volkova Java Developer в DXC Master
21 декабря 2019, 19:08
Они и не совмещаются, между ними стоит логическое ИЛИ
У логических операций есть приоритет выполнения (как у арифметических - например, умножение выполняется раньше сложения). Логическое И выполняется раньше логического ИЛИ.
То есть выражение
number % 400 == 0 || number % 4 == 0 && number % 100 != 0
можно представить как
(number % 400 == 0) || (number % 4 == 0 && number % 100 != 0)
Это условие выполнится если истинной будет хотя бы одна его часть - до знака || или после него.
0
София
21 декабря 2019, 19:51
Спасибо, не знала! В остальном все понятно!
0