User Tools

Site Tools


lang:judo:tutorial-ru-004

[ Введение | Основы | 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.
  • Напечатайте все трехзначные числа, сумма цифр которых равна заданному числу.
  • Подсчитайте, сколько существует трехзначных чисел, все цифры которых различны.

Перейдем к следующему уроку.

lang/judo/tutorial-ru-004.txt · Last modified: 2007/03/10 04:28 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki