Циклы

Открыта

— Привет.

— Привет, Элли!

— Настало… время изучать циклы! Циклы такая же простая штука, как и условия, только интересней. С помощью цикла можно выполнить какую-нибудь команду или блок команд несколько раз. Общий вид цикла такой:

Цикл (пример 1)
while(условие типа boolean)
    команда;
Цикл (пример 2)
while(условие типа boolean)
    блок команд в фигурных скобках

— Все очень просто. Команда или блок команд выполняются снова и снова, пока условие цикла истинно – равно true. Сначала проверяется условие, затем выполняется тело цикла (блок команд), затем снова проверяется условие и снова выполняется тело цикла. И так до тех пор, пока условие не станет ложным.

— А если оно всегда истинно или всегда ложно?

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

Примеры:

Код на Java Описание
int i = 3;
while (i >= 0)
{
    System.out.println(i);
    i--;    //уменьшение i на 1
}
3
2
1
0
int i = 0;
while (i < 3)
{
    System.out.println(i);
    i++;   //увеличение i на 1
}
0
1
2
boolean isExit = false;
while (!isExit)
{
    String s = buffer.readLine();
    isExit = s.equals("exit");
}
Программа будет вводить строки с клавиатуры, пока не будет введена строка «exit».
while (true)
    System.out.println("C");
Программа будет вечно печатать на экран букву C.
while (true)
{
    String s = buffer.readLine();
    if (s.equals("exit"))
        break;
}
Программа будет вводить строки с клавиатуры, пока не будет введена строка «exit».
2
Задача
Java Syntax,  4 уровень,  8 лекция
Недоступна
Набираем код Ӏ Java Syntax: 4 уровень, 8 лекция
Java Syntax: 4 уровень, 8 лекция. Внимание! Объявляется набор кода на JavaRush. Для этого включите режим повышенной внимательности, расслабьте пальцы, читайте код и… набирайте его в соответствующем окошке. Набор кода — вовсе не бесполезное занятие, как может показаться на первый взгляд: благодаря ему новичок привыкает к синтаксису и запоминает его (современные IDE редко дают ему это сделать).

— Вроде и не сложно. После условий. Уже хочется попробовать.

Комментарии (158)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
ಥ_ಥ5 уровень
27 June, 15:06
😬
Nastya 9 уровень, Кривой рог
10 June, 18:56
Почему у меня в голове не сохраняються методы циклы . ААААААААААААА
Sergei10 уровень, Москва
3 June, 09:44
В примере с isExit, я думаю многих смущает 1 строчка. Попробуйте в ней присвоить значение true. Подсказка: цикл не запустится, т.к. тогда в его условии получится false (!isExit т. е. !true), а цикл работает, только когда true. Далее в теле цикла мы ждём пока непосредственно самой переменной isExit присвоится значение true, чтобы закончить цикл (условие !isExit значит для работы цикла нужно, чтобы было верно ложное утверждение). Не путать это значение true самой переменной и условием, что цикл работает только когда true. Это 2 разных момента. Пока я их не разделил, в голове была каша.
Дмитрий8 уровень, Санкт-Петербург
30 May, 14:37
что еще за Boolean?
Михаил Никитюк5 уровень, Харьков
2 June, 21:10
тип данных (переменная) который принимает всего 2 значения true и false, по умолчанию у этой переменной значение false.
Max7 уровень
9 June, 09:30
Boolean - обёртка над примитивным типом boolean, в случае, когда с переменной нужны какие-нибудь свойства объекта. Автоматически приводятся друг к другу. Раньше встречался подобный - Integer в выражениях int a = Integer.parseInt(....);
George9 уровень, Yakutsk
28 May, 02:14
Сложность задач ушла далеко вперед тем которые мы здесь изучаем, оставлю ка задачи на потом
Mark9 уровень, Yaroslavl
3 May, 00:08
Решил проверить, как выглядит: while (true) System.out.println("C"); 1) С С С С ... С 2) Комп чего-то загудел через 10 секунд ¯\_(ツ)_/¯
Pavel Elizarov9 уровень, Нижний Новгород
6 May, 10:12
😂😂😂😂
muthafucka8 уровень, Томск
21 May, 11:07
Тоже решил посмотреть что будет)) в итоге за 10 секунд прога напечатала 500к строк😂😂
Михаил Никитюк5 уровень, Харьков
2 June, 21:11
такой себе вирус
Mir k12 уровень
26 April, 02:24
То есть мы можем не писать для ввода с клавитуры баффередрид итд а просто String s = buffer.readLine(); ?
Alexey22 уровень
26 April, 20:36
В этом примере для простоты чтения ту часть кода где идет объявление переменной buffer типа BufferedReader
BufferedReader buffer = new BufferedReader( new InputStreamReader(System.in));
просто убрали. Вы например можете в idea скопировать интересующий вас код и посмотреть , а как на него синтаксический анализатор IDE ( IDE это и есть IDEA ) отреагирует.
Edem7 уровень, Санкт-Петербург
24 April, 14:13
Может кто-нибудь объяснить, почему к этой лекции нет доступа, когда при решении задачи на 3 уровне сам раш предлагает мне использовать while?
Maxim8 уровень, Санкт-Петербург
26 April, 08:06
А открыть за материю разве не получается? Должна быть кнопка "Читать за "+кол-во материи. Так любую лекцию можно открыть. Ну, или загуглить на худой конец.
Edem7 уровень, Санкт-Петербург
28 April, 14:57
Не получается, потому что не открыта предыдущая лекция. Загуглить можно, но я ведь купил подписку, здесь есть эта лекция. Мне задают задачу с циклами до лекции, я не могу ее открыть. Какая в этом логика?
Игорь Кучер36 уровень, Киев
21 May, 15:32
Советую проходить уровень целиком, а потом решать задачи.
Александр7 уровень, Санкт-Петербург
8 June, 20:14
можно открыть любую лекцию, до которой ещё не добрался в окне инкогнито и почитать лекцию.
Дмитрий 4 уровень, Луганск
17 April, 16:33
У всех тоже только премиум задачи или только у меня
Knizhnikm8 уровень, Москва
20 April, 00:36
А есть не премиум задачи? Где?
IIIIXI7 уровень, Москва
16 April, 13:10
чТО ТАКОЕ equals? и когда его ставить?
Надежда 7 уровень
16 April, 14:33
метод equals применяется для сравнения объектов типа String (6 лекция). там был такой пример: String s = new String("Mama"); String s2 = new String("Mama"); System.out.println(s.equals(s2));
Ira Tsygarova15 уровень, Санкт-Петербург
16 April, 15:41
equals - это метод ( в данном случае метод класса String) Он используется тогда, когда мы хотим сравнить значения строк. Если содержание двух строк равны, то возвращается true, в противном случае false
Nikita Berezhnov8 уровень, Москва
16 April, 22:43
В дополнение отправлю к предыдущим лекциям, где говорится о том, что нельзя применять проверку равенства к переменным, которые являются ссылочными. String это ссылочный тип и для сравнения ЗНАЧЕНИЙ как правильно написали надо использовать метод equals класса String
Павел Павличенко30 уровень, Львов
20 April, 17:03
Можно и для ссылочных объектов применять equals, только в таком случае данный метод нужно переопределять. Об этом раньше писали, но это тема будущих лекций