Пример 6. Здесь сначала выполняется действие, а потом уже проверяется условие

Пример 5.

Do

Пример 4.

Do

Действие;

while (условие);

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

Посмотрим, как выглядит расчет факториала с помощью оператора do..while

int F = 1, max = 5, i = 2;

{

F *= i;

i++;

}

while (i <= max);

Console.WriteLine (F); '

А что если нужно с помощью этого кода вычислить факториал числа 1? Фак­ториал единицы равен единице, но если мы просто изменим max на 1, код вернет 2, ведь первый шаг цикла выполняется вне зависимости от проверки, а значит, цикл успеет умножить переменную на 2.

Поэтому цикл do..while лучше не использовать для вычисления факториала, иначе он выдаст невер­ный результат для значения 1.

4. Цикл foreach

Циклы очень удобно использовать с массивами значений.

В общем виде данный цикл выглядит следующим образом:

foreach ( тип переменная in массив )

Действие;

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

Тип данных для переменной должен быть точно таким же, каким являются элементы мас­сива.

Если мы работаем с массивом целых чисел, то и переменная должна иметь тип целого числа.

Пусть имеется массив целых чисел, ив нем необходимо найти максимальное и минимальное значения.

Для начала посмотрим, как можно решить эту задачу с помощью цикла for:

Int [] A ={ 10, 20, 4, 19, 44, 95, 74, 28, 84, 79 };

int max = A [0];

int min = A [0];

for (int i = 0; i < 10; i++)

{

if (A [i] < min) min = A[i];

if (A [i] > max) max = A[i];

}

Console.WriteLine ("Минимальное значение " + min);

Console.WriteLine ("Максимальное значение " + max);

Здесь сначала объявляем и тут же инициализируем массив A десятью значениями.

После этого объявляются две целочисленные переменные min и max, которым по умолчанию присваивается значение нулевого элемента массива.

Далее запускаем цикл, который будет выполняться от 0 и пока i меньше 10, т. е. максимум до 9, именно такие значения может принимать индекс элементов в массиве.

Внутри цикла сначала проверяем, является ли текущий элемент A[i] меньше минимального, и если это так, то сохраняем текущее значение в пе­ременной min. После этого такую же проверку делаем на максимальное значение.

Обратите внимание, что после оператора if нет фигурных скобок и это логично, потому что нужно выполнить только одно действие.

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

int [] A = {10, 20, 4, 19, 14, 95, 74, 28, 84, 79 };

int max = A[0];

int min = A[0];

foreach (int v in A)

{

if (v < min) min=v;

if (v>max) max=v;

}

Console.WriteLine ("Минимальное значение " + min);

Console.WriteLine ("Максимальное значение =" + max);

Здесь мы также объявляем массив и инициализируем начальные значения для переменных результатов.

Самое интересное происходит в скобках foreach, где описывается переменная с именем v тира int, потому что мы работаем с массивом целых чисел.

Внутри цикла мы обращаемся к текущему элементу массива через перемен­ную v и именно ее значение сравниваем с максимальным и минимальным значениями, и при необходимости сохраняем значение в максимальном илиминимальном значении.

Преимущество цикла foreach в том, что вы никогда не выйдите за пределы массива, и вам не нужно задумываться о том, сколько элементов находится в массиве. Вы всегда просмотрите все элементы массива.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: