package com.javarush.task.pro.task03.task0303;
import java.util.Scanner;
/*
Школа или институт
*/
public class Solution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
if (age < 18) {
if (age > 5) {
System.out.println("нужно ходить в школу");
}
} else {
System.out.println("пора в институт");
}
}
}
Дорогие друзья доброго времени суток!
Это больше обращение к Экспертам сообщества и я наврное постараюсь выразить мнение тех слепых котят которые начали свой путь в IT.
Тема про скобки)))
Выше я приложил Правильный ответ на задание и прошу Экспертное сообщество пояснить следующие моменты:
1. Как мы ученики 1-го класса до6адываемся {} скобки закрывают последовательность if/else. Например:
{If (age>18)
System.out.print (иди в школу)
Else
System.out.print(иди гуляй)} -и тут скобки закрылись мы отделили и система понимает последовательность.
2. В вашем ответе мы наблюдаем { после 18, потом такую же скобку { после 5 которая закрывается после вывода на принт? Что мы тыт отделяем? Почему первая скобка не закрытая? И на мой взгяд тут хаотично раставлены эти скобки.
Вот честно понять не могу закономерность и что тут к чему!?!?!
Илья Пит
3 уровень
Скобки!!!!!!!!!{} мать их за душу
Обсуждается
Комментарии (11)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Газимагомед
24 августа 2023, 11:14
дажи дажи
0
Константин
3 августа 2022, 09:28
Скобки покрывают дополнительный диапазон значений. Со скобками прога работает так (если правильно понял): первый if определяет, до 18 ли число, если да, то тут же смотрит, больше ли оно шести, если да, выводится текст. Т.е. тут происходят некие действия только тогда, когда диапазон от 6 до 17 включительно, но диапазон вообще покрывается от -2147483648 до 18, всё остальное идет в else, т.е. 18 и выше, для которых выводится текст "пора в институт".
Если скобок нет, то по аналогии получается диапазон от 6 до 17 с выводом текста, но от -2147483648 до 18 не покрывает (в отличие от ситуации со скобками) и этот непокрытый диапазон идет в else.
Итого со скобками у нас if покрывает от -2147483648 до 18, else от 18 и выше, без скобок if покрывает только от 6 до 18, а от -2147483648 до 6 и от 18 и выше идет в else.
+2
Ksenia Volkova Java Developer в DXC Master
23 сентября 2021, 09:39
В скобки берется тело (содержимое) условного блока, а не сама конструкция if/else.
Точно так же в скобки заключается тело цикла.
Весь метод целиком тоже ограничивается скобками. И сам класс тоже.
+14
Капитан IT
19 марта 2022, 08:41
какая то жесть!Ничего не понятно!
+2
Alex1701
13 апреля 2022, 16:11
ничего не понятно, но очень интересно!
+1
НикитаExpert
13 апреля 2022, 16:34
А что непонятно? Ксения вроде хорошо описала
0
Alex1701
14 апреля 2022, 17:23
Уже примерно понятно)
0
Kogan
21 июля 2023, 17:43
Ksenia Volkova, я люблю тебя!!!!))))
+1
Олег Трофимчук
14 ноября 2023, 05:44
Доидем до ,10 уровня там ужу у вас дети будут .
0
ProgBox #3445088
29 апреля, 20:43
С вашего позволения сделаю джуновское дополнение.
Если говорить просто, то вы должны обозначить программе, к какому циклу относится та или иная команда. И фигурные скобки помогают нам это сделать. Их можно, конечно, не использовать, если не нужно, но лучше использовать всегда)) Так вы поймете на 100 процентов, что сообщаете программе.
Помните, как выглядят конструкции циклов?
- Если нужно простое условие (звучит как если условие выполняется, сделай команду1)
- Если нужно условие с дополнительным переходом (звучит как если условие выполняется, сделай команду1, НО если условие не выполняется, сделай команду2)
- И также можно указывать фигурные скобки, например, если нужно сказать программе к какому циклу относятся команды или у нас несколько команд. Давайте рассмотрим, как будто несколько команд.
Коротко вышенаписанное - if обязателен, else можно не использовать, также можно использовать фигурные скобки (при необходимости).
Мы теперь знаем какие конструкции есть. Так вот, их можно миксовать, "вкладывать" друг в друга.
- Если есть вложенные условия (звучит как если условие1 выполняется, проверь условие2, и если оно выполняется, сделай команду 1, а если условие2 не выполняется, сделай команду 2).
Тут мы не используем фигурные скобки, и программа выполняется корректно, тк по умолчанию else относится к условию 2. Еще раз, последний кусок звучит как "если условие2 не выполняется, сделай команду1". Но это как раз и ломало программу.
Исправим в след посте)) 0
ProgBox #3445088
29 апреля, 20:50
И так, допустим, что нам нужно поменять предыдущие требования. Звучать должно как "если условие1 выполняется, проверь условие 2, и если оно выполняется, сделай команду1, но если условие1 НЕ выполняется, сделай команду 2). Замечаете разницу? Команда 2 выполнится в случае, если условие1 не выполняется. А в предыдущем примере команда2 выполнялась, когда условие2 не выполнялось.
Пишем код, используя фигурные скобки.
Надеюсь помог)) 0