Воскресенье
20.09.2020
06:41


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » Java приложения » Java

Оператор цикла while
Цикл while — наиболее фундаментальный оператор цикла Java. Он повторя¬ет оператор или блок операторов, пока его управляющее выражение имеет значение true. Вот его общая форма:
while(condition) { 
  // тело цикла
}
Здесь condition может быть любым булевским выражением. Тело цикла бу¬дет выполняться до тех пор, пока условное выражение имеет значение true. Когда condition становится false, управление передается строке програм¬мы, следующей непосредственно за циклом. Фигурные скобки не нужны, если повторяется одиночный оператор.
Следующий while-цикл считает в обратном порядке от 10, печатая точно десять "тик"-строк:
// Демонстрирует while-цикл.

public class While {

  public static void main(String[] args) {
    int n = 10;
    while (n > 0) {
      System.out.println("тик " + n);
      n--;
    }
  }
}

Когда вы выполните эту программу, она "тикнет" ровно десять раз:
тик 10
тик 9
тик 8
тик 7
тик 6
тик 5
тик 4
тик 3
тик 2
тик 1
Так как цикл while оценивает условное выражение в самом начале своей работы, тело цикла не будет выполняться ни одного раза, если условие сразу же имеет значение false. Например, в следующем фрагменте обращение к println () никогда не выполняется:
int а = 10, b = 20;
while(а > b)
  System.out.println("Эта строка никогда не выведется");

Тело цикла while (или любого другого цикла Java) может быть пустым. Это потому, что в Java синтаксически допустим пустой (null) оператор (который состоит только из точки с запятой). Например, рассмотрим следующую программу:

// Тело цикла может быть пустым.

public class NoBody {
  public static void main(String[] args) {
    int i, j;
    i = 100;
    j = 200;
    // найти среднюю точку между i и j 
    while(++i <--j) ; // в этом цикле нет тела
    System.out.println("Средняя точка " + i);
  }
}

Эта программа находит среднюю точку между i и j. Она генерирует сле¬дующий вывод:

Средняя точка 150
Посмотрим, как цикл while работает. Значения переменной i формирует операция инкремента, а значение j — декремента. Затем эти значения срав¬ниваются друг с другом. Если новое значение i все еще меньше, чем новое значение j, цикл повторяется. Если i равно или больше j, цикл останавли¬вается. На выходе из цикла i будет содержать значение, которое является средним между первоначальными значениями i и j. (Заметим, что эта про¬цедура работает только тогда, когда в самом начале i меньше, чем j.) Не трудно видеть, что нет никакой потребности в теле цикла, все действия происходят непосредственно в самом условном выражении. В профессио¬нально составленном коде Java короткие циклы часто кодируются без тел, когда управляющее выражение может само обрабатывать все детали.

Примечание:
Инкремент и декремент
В Java существует два оператора, называемых операторами инкремента и декремента (++ и --) и являющихся сокращенным вариантом записи для сложения или вычитания из операнда единицы. Эти операторы уникальны в том плане, что могут использоваться как в префиксной, так и в постфиксной форме. При использовании префиксной формы операнд модифицируется перед выполнением операции. В постфиксной форме сначала используется содержимое операнда, а лишь после этого операнд инкрементируется или декрементируется. Следующий пример иллюстрирует использование операторов инкремента и декремента.

public class IncDec {

  public static void main(String[] args) {
    int j1, i1 = 1;
    j1 = i1--;
    System.out.println("j1 = " + j1 + ", i1 = " + i1);
    int j2, i2 = 1;
    j2 = --i2;
    System.out.println("j2 = " + j2 + ", i2 = " + i2);

  }

Результат будет выглядеть так:
j1 = 1, i1 = 0
j2 = 0, i2 = 0

Категория: Java | Добавил: Akarak (06.10.2011)
Просмотров: 7577 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
Java [12]
Консольные приложения
Java ООП [2]

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2020
    Используются технологии uCoz