Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






For (инициализация; условие; изменение). где инициализация – устанавливает начальное значение параметра цикла,




{

Оператор;

Оператор;

Оператор;

...

Оператор;

}

где инициализация – устанавливает начальное значение параметра цикла,

условие – определяет условие выполнения цикла,

изменение – задает изменение параметра цикла после каждой итерации.

Действия цикла:

1. параметру цикла x присваивается его начальное значение x_нач,

2. проверяется условие выполнения цикла: если оно истинно, то выполняется тело цикла,

3. параметр цикла автоматически увеличивается на шаг, и цикл повторяется до тех пор, пока условие не становится ложным,

4. если условие не выполняется, то цикл заканчивает работу,

5. из цикла можно выйти досрочно, используя оператор break.

Внимание! Все три составляющие в круглых скобках разделяются точками с запятой. После круглых скобок точка с запятой не ставится.

Пример: определить сумму s натуральных чисел от 1 до 100.

Схема алгоритма:

 

Программа:

int s = 0;

for (int n=1; n<=100; n ++)// n – локальная переменная цикла

s+=n;

System.out.printf(“\ns=%d”, s);

Внимание! Параметр цикла, если он в программе больше нигде, кроме этого цикла, не используется, желательно описать как локальную переменную этого цикла внутри круглых скобок.

Этот же цикл можно организовать без тела цикла:

for (int n=1; n<=100; s+=n++);

Эту же задачу можно решить, суммируя числа справа налево, то есть от 100 до 1:

for (int n=100; n>=1; s+=n--);

Любая из трех составляющих (инициализация, условии, изменение) может отсутствовать, причем если отсутствует условие продолжения цикла, то считается, что оно всегда истинно, и цикл превращается в бесконечный:

For (;;);

Это бесконечный цикл. Точки с запятой в скобках должны обязательно присутствовать, даже если между ними ничего нет.

Циклы for в Java отличаются от аналогичных циклов в Паскале своей гибкостью и большими возможностями. Первая и третья составляющие в скобках не обязательно присваивают начальное значение параметру цикла и изменяют его после каждой итерации, а вторая составляющая не обязательно является условием продолжения цикла. Любая из этих составляющих может быть любым выражением или оператором целого или действительного типов, строкой или функцией. Но вторая составляющая всегда понимается как условие, что бы она собой ни представляла:

for (System.out.println(“Славное”); System.out.println(“море -”); System.out.println(“Байкал!”))

System.out.println(“священный”);

На экран будет выведена бесконечная последовательность:

Славное

Море -

Священный

Байкал!

Море -

Священный

Байкал!

Море -

Священный

Байкал!

.....

Условие выполнения цикла проверяется перед каждой итерацией, а приращение параметра цикла может быть переменным, поэтому, в отличие от Паскаля, в Java допускается изменение значения параметра цикла и условия продолжения цикла в теле этого же цикла. Может отсутствовать и сам оператор, выполняемый в цикле:

for (int count=0; getch()!=’\n’; count++);

Этот цикл подсчитывает количество вводимых с клавиатуры символов, пока не будет нажата клавиша ввода (она соответствует ESC -последовательности ‘\n’). В этом цикле параметр цикла count не входит в условие его выполнения - это тоже не обязательно.

В одном цикле for можно использовать одновременно несколько параметров цикла, которые при инициализации разделяются запятыми:

for (int i=0, int j=n; i<j; i++, j--)

{

.....

}

Как и в других языках программирования, в Java разрешено использовать цикл в цикле, при этом циклы должны иметь разные параметры цикла:

int sum, min=6, max=10000;

System.out.printf(“\nСовершенные числа от %d до %d:\n”, min, max);

for (int num = min; num <= max; num += 2)

{

sum = 1;

for (int factor = 2; factor < num; factor++)

{

if (num % factor == 0)

sum += factor;

}

if (sum == num)

System.out.printf(“\n%d”, num);

}

Эта программа осуществляет поиск всех совершенных чисел от 6 до 10000.

Для досрочного прекращения выполнения цикла и выхода из него используется оператор прерывания break:

public final int MIN=2;

public final int MAX=1000;

for (int n = MIN; n <= MAX; n++)

{

for (int i = MIN; i < n; i++)

{

if (n % i == 0)

break; //выход из внутреннего цикла

}

if (i == n)

System.out.printf(“\n%d”, n);

}

}

Эта программа осуществляет поиск всех простых чисел от 2 до 1000.

Во вложенных циклах команда break прекращает выполнение только того цикла, в котором стоит.

Для пропуска одной итерации цикла (перехода к следующей итерации) используется команда продолжения continue:

public final int MIN=3;

public final int MAX=100;

for (int number = MIN; number <= MAX; number++)

{

if (number % 3!= 0)

continue; // следующая итерация цикла

System.out.printf(“\n%d”, number);

}

Эта программа осуществляет поиск всех чисел, кратныхтрем, от 3 до 100.

Примеры:

1. Вычислить Sn – сумму n первых натуральных чисел

Алгоритм:
Sn = 0






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных