Пример 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 в том, что вы никогда не выйдите за пределы массива, и вам не нужно задумываться о том, сколько элементов находится в массиве. Вы всегда просмотрите все элементы массива.