Table of Contents
[ Введение | Основы | if/else | Циклы | Массивы | Графика | Анимация | Мышь | Клавиатура | Математика | Методы | Текст | Задачи ]
Java для школьников: урок 4
Цикл while
Попробуйте этот код:
void main() { // 1. Объявляем и инициализируем переменные int counter = 1; // 2. Запускаем цикл while while (counter < 5) { printLine("Счетчик равен " + counter); // 3. Прибавляем 1 к значению счетчика counter = counter + 1; } // 4. Цикл while закончился, программа продолжается дальше printLine("Чао"); }
Что будет напечатано?
Счетчик равен 1 Счетчик равен 2 Счетчик равен 3 Счетчик равен 4 Чао
Заметки по приведённому коду:
- Устанавливаем начальное значение счетчика равным 1.
- Цикл while (инструкции внутри фигурных скобок после while) будут повторяться пока выражение в круглых скобках истинно. Если выражение ложно (счетчик = 5 или больше), то цикл завершается.
- Счетчик увеличивается на единицу. Каждый раз, проходя по циклу, к счетчику прибавляется единица, до момента когда условие (счетчик < 5) станет ложным. То есть счетчик будет равен 5.
- Программа продолжается со следующей строки, выдает “Чао” и завершается.
Циклы - это повторяющиеся наборы инструкций. В случае цикла while схема выполнения следующая:
while (это выражение истинно) { // выполняются инструкции в этих фигурных скобках, // обычно прибавляется 1 к счетчику цикла } // когда выражение внутри while становится ложным, то // выполнение продолжается на последующих строках
Упражнения:
- Попробуйте в приведенном выше примере закомментировать строку “counter = counter + 1;”. То есть добавьте в начало строки символы “//”. Что получается? Почему?
- Что выдаст следующий код:
void main() { int counter = 10; while (counter > 1) { printLine(" " + counter + " green bottles hanging on the wall"); printLine(" " + counter + " green bottles hanging on the wall"); printLine("And if one green bottle should accidently fall, "); counter = counter - 1; printLine("There'd be " + counter + " green bottles hanging on the wall"); } }
- Напечатайте четные числа от 20 до 30.
- Напечатайте таблицу умножения: от 2 до 9 по горизонтали и от 2 до 9 по вертикали.
- Напечатайте все простые числа от 200 до 300.
Цикл do...while
Цикл do…while похож на цикл while, но условие проверяется после выполнения инструкций в теле тела. Общая схема цикла do…while выглядит так:
do { // выполняются инструкции в этих фигурных скобках, } while (пока это выражение истинно);
Заметьте, что тело цикла всегда выполняется хотя бы один раз, поскольку проверка делается позже. В большинстве случаев лучше применять обычный цикл while, в котором условие проверяется до выполнения цикла.
Пример:
int y = 10; printLine("Обратный отсчет..."); do { printLine("..." + y); y = y - 1; } while (y > 1); printLine("Поехали!");
Попробуйте запустить этот код. Что у Вас получилось?
Упражнения
- Какой цикл всегда выполняется хотя бы однажды?
- В какой момент в цикле do…while проверяется логическое условие?
Цикл for
Цикл for - это сокращенная запись следующих действий:
- установка счетчика,
- проверка условия,
- приращение счетчика.
Все в одной инструкции.
Но сначала надо изучить операцию инкремента.
Операция инкремента ++
Операция X++ увеличивает значение переменной X на 1. То есть
x++;
это тоже самое, что и
x = x + 1;
Операция декремента --
Операция Y– – уменьшает значение переменной Y на 1. Фактически
y--;
это тоже самое, что и
y = y - 1;
Итак, вернемся к циклу for.
В цикле for все три действия - установка, проверка и приращение - перечисляются в скобках после слова “for”. Разделять их надо точкой с запятой.
Пример А.
for (int x = 0; x < 10; x++) { printLine("x = " + x); }
Общая схема цикла for такая:
for (УСТАНОВКА счетчика; ПРОВЕРКА условия; ПРИРАЩЕНИЕ счетчика) { // инструкции для выполнения в цикле }
Приращение счетчика часто содержит инкремент (x++) или декремент (y– –).
В примере А выше, установка счетчика есть “int x = 0;”. Эта инструкция объявляет x как целую переменную и инициализирует её значением 0.
Проверка условия есть “x < 10;”. Эта инструкция проверяет значение x, и если выражение верно (истинно), то цикл выполняется. Если выражение ложно, (x == 10 или x > 10), то цикл пропускается и выполнение продолжается с инструкции, следующей за закрывающей фигурной скобкой }.
Пример Б. Обратный отсчет от 10 до 1:
for (int x = 10; x > 0; x--) { printLine(x); }
Упражнения:
- Напечатайте таблицу умножения, используя циклы for.
- Напечатайте все трехзначные числа, сумма цифр которых равна заданному числу.
- Подсчитайте, сколько существует трехзначных чисел, все цифры которых различны.