Чтение онлайн

на главную - закладки

Жанры

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Оператор цикла for

Оператор for уже был представлен в главе 2, а здесь он рассматривается более подробно. Вас должны приятно удивить эффективность и гибкость этого оператора. Прежде всего, обратимся к самым основным и традиционным формам оператора for.

Ниже приведена общая форма оператора for для повторного выполнения единственного оператора.

for{инициализация; условие; итерация) оператор;

А вот как выглядит его

форма для повторного выполнения кодового блока:

for(инициализация; условие; итерация)

{

последовательность операторов;

}

где инициализация; как правило, представлена оператором присваивания, задающим первоначальное значение переменной, которая выполняет роль счетчика и управляет циклом; условие — это логическое выражение, определяющее необходимость повторения цикла; а итерация — выражение, определяющее величину, на которую должно изменяться значение переменной, управляющей циклом, при каждом повторе цикла. Обратите внимание на то, что эти три основные части оператора цикла for должны быть разделены точкой с запятой. Выполнение цикла for будет продолжаться до тех пор, пока проверка условия дает истинный результат. Как только эта проверка даст ложный результат, цикл завершится, а выполнение программы будет продолжено с оператора, следующего после цикла for.

Цикл for может продолжаться как в положительном, так и в отрицательном направлении, изменяя значение переменной управления циклом на любую величину. В приведенном ниже примере программы выводятся числа; постепенно уменьшающиеся от 100 до -100 на величину 5.

// Выполнение цикла for в отрицательном направлении.

using System;

class DecrFor {

static void Main { int x;

for(x = 100; x > -100; x -= 5)

Console.WriteLine(x);

}

}

В отношении циклов for следует особо подчеркнуть, что условное выражение всегда проверяется в самом начале цикла. Это означает, что код в цикле может вообще не выполняться, если проверяемое условие с самого начала оказывается ложным. Рассмотрим следующий пример.

for(count=10; count < 5; count++)

x += count; // этот оператор не будет выполняться

Данный цикл вообще не будет выполняться, поскольку первоначальное значение переменной count, которая им управляет, сразу же оказывается больше 5. Это означает, что условное выражение count < 5 оказывается ложным с самого начала, т.е. еще до выполнения первого шага цикла.

Оператор цикла for — наиболее полезный для повторного выполнения операций известное число раз. В следующем примере программы используются два цикла for для выявления простых чисел в пределах от 2 до 20. Если число оказывается непростым, то выводится наибольший его множитель.

// Выяснить, является ли число простым. Если оно // непростое, вывести

наибольший его множитель.

using System;

class FindPrimes { static void Main { int num; int i; int factor; bool isprime;

for(num = 2; num < 20; num++) { isprime = true; factor = 0;

// Выяснить, делится ли значение переменной num нацело. for(i=2; i <= num/2; i++) {

if((num % i) == 0) {

// Значение переменной num делится нацело.

// Следовательно, это непростое число, isprime = false; factor = i;

}

if(isprime)

Console.WriteLine(num + " — простое число."); else

– Console.WriteLine("Наибольший множитель числа " + num + " равен " + factor);

}

}

}

Ниже приведен результат выполнения этой программы.

2 — простое число

3 — простое число

Наибольший множитель

числа

4

равен 2

5 — простое число Наибольший множитель

числа

6

равен 3

7 — простое число Наибольший множитель

числа

8

равен 4

Наибольший множитель

числа

9

равен 3

Наибольший множитель

числа

10

равен 5

11 — простое число Наибольший множитель

числа

12

равен 6

13 — простое число Наибольший множитель

числа

14

равен 7

Наибольший множитель

числа

15

равен 5

Поделиться:
Популярные книги

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

70 Рублей

Кожевников Павел
1. 70 Рублей
Фантастика:
фэнтези
боевая фантастика
попаданцы
постапокалипсис
6.00
рейтинг книги
70 Рублей

Сандро из Чегема (Книга 1)

Искандер Фазиль Абдулович
Проза:
русская классическая проза
8.22
рейтинг книги
Сандро из Чегема (Книга 1)

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Пипец Котенку! 3

Майерс Александр
3. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 3

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Безумный Макс. Поручик Империи

Ланцов Михаил Алексеевич
1. Безумный Макс
Фантастика:
героическая фантастика
альтернативная история
7.64
рейтинг книги
Безумный Макс. Поручик Империи

Хёвдинг Нормандии. Эмма, королева двух королей

Улофсон Руне Пер
Проза:
историческая проза
5.00
рейтинг книги
Хёвдинг Нормандии. Эмма, королева двух королей

Кто ты, моя королева

Островская Ольга
Любовные романы:
любовно-фантастические романы
7.67
рейтинг книги
Кто ты, моя королева

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

Башня Ласточки

Сапковский Анджей
6. Ведьмак
Фантастика:
фэнтези
9.47
рейтинг книги
Башня Ласточки

Игра на чужом поле

Иванов Дмитрий
14. Девяностые
Фантастика:
попаданцы
альтернативная история
5.50
рейтинг книги
Игра на чужом поле

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6