[ [[tutorial-ru-001 | Введение]] | [[tutorial-ru-002 | Основы]] |
[[tutorial-ru-003 | if/else]] | [[tutorial-ru-004 | Циклы]] |
[[tutorial-ru-005 | Массивы]] | [[tutorial-ru-006 | Графика]] |
[[tutorial-ru-007 | Анимация]] | [[tutorial-ru-008 | Мышь]] |
[[tutorial-ru-009 | Клавиатура]] | [[tutorial-ru-010 | Математика]] |
[[tutorial-ru-011 | Методы]] | [[tutorial-ru-012 | Текст]] |
[[tutorial-ru-013 | Задачи]] ]
----
== 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 становится ложным, то
// выполнение продолжается на последующих строках
{{while.gif}}
** Упражнения: **
* Попробуйте в приведенном выше примере закомментировать строку "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.gif}}
** Упражнения **
* Какой цикл всегда выполняется хотя бы однажды?
* В какой момент в цикле 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.gif}}
** Упражнения: **
* Напечатайте таблицу умножения, используя циклы for.
* Напечатайте все трехзначные числа, сумма цифр которых равна заданному числу.
* Подсчитайте, сколько существует трехзначных чисел, все цифры которых различны.
----
[[tutorial-ru-005 | Перейдем к следующему уроку]].