Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 4.Оператори мови С#.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
174 Кб
Скачать
☆

4.2. Оператори циклу

Оператори циклу використовуються для обчислень, що повторюються багато разів. Блок, для виконання якого організовується цикл, називається тілом циклу. Решта операторів використовуються для управління процесом повторення обчислень: це початкові установки, перевірка умови продовження циклу і модифікація параметра циклу. Один прохід циклу називається ітерацією.

В усіх мовах програмування є два типи циклів: з передумовою і з пост-умовою. Також є цикл з параметром (for).

Початкові установки використовуються для того, щоб до входу в цикл задати значення змінних, які в ньому використовуються.

Перевірка умови продовження циклу виконується на кожній ітерації або до тіла циклу (тоді говорять про цикл з передумовою), або після тіла циклу (цикл з пост-умовою).

Параметром циклу називається змінна, яка використовується при перевірці умови продовження циклу і примусово змінюється на кожній ітерації, причому, як правило, на одну і ту саму величину. Якщо параметр циклу цілочисельний, він називається лічильником циклу.

Цикл завершується, якщо умова його продовження не виконується. Можливе примусове завершення як поточної ітерації, так і циклу в цілому. Для цього служать оператори break, continue, return і goto. Передавати управління ззовні всередину циклу забороняється.

В С# для організації циклів використовуються чотири типи циклів: for, while, do, foreach. Всі цикли крім foreach успадковані від С++ і мають той самий синтаксис.

Цикл з передумовою while

Синтаксис цикла while:

while (умова)

{список операторів}

Семантика оператора while:

Оператори в тілі циклу виконуються до тип пір, поки умова має значення true.

Приклад 4.4

int a=5678;

while (a>1)

{

a /= 10;

}

Умова в операторі while перевіряється до входження в цикл. Це гарантує, що цикл не буде виконуватися, якщо умова зразу має значення false.

Приклад 4.5

Напишемо програму, яка виводить для аргументу х, що змінюється в заданих границях із заданим кроком, таблицю значень наступної функції:

X={t, x<0

tx, 0<=x<10

2t, x>10 }

Назвемо початкове значення аргументу Xn, кінцеве значення аргументу — Xk, крок зміни аргументу — dX і параметр t. Всі величини дійсні числа (double). Програма повинна виводити таблицю, що складається з двох стовпців: значень аргументу і відповідних ним значень функції.

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

double Xn = -2, Xk = 12, dX = 2, t = 2, y;

Console.WriteLine("| x | y |"); // заголовок таблиці

double x = Xn;

while (x <= Xk)

{

y = t;

if (x >= 0 && x < 10) y = t * x;

if (x >= 10) y = 2 * t;

Console.WriteLine("| {0,6} | {1,6} |", x, y);

x += dX;

}

Console.ReadKey();

}

}

}

Цикл з пост-умовою do…while

Синтаксис циклу do

do

{ список операторів }

while(умова);

Семантика циклу do…while

Оператори в тілі циклу виконуються до тип пір, поки умова має значення true.

Умова в операторі while перевіряється після ітерації циклу. В цьому циклі завжди виконується хоча б одна ітерація.

Приклад 4.6

int a=5678;

do

{

a /= 10;

} while (a>1);

Цей тип циклу застосовується в тих випадках, коли тіло циклу необхідно обов'язково виконати хоч б один раз.

Приклад 4.7

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

char answer;

do

{

Console.WriteLine("Будете вчитися?");

answer = (char)Console.Read();

Console.ReadLine();

} while (answer != 'y');

}

}

}

Цикл з перебором (for)

Синтаксис оператора:

for (ініціалізатор; умова; список_виразів)

{ оператори}

Семантика оператора

Ініціалізація використовується для оголошення змінних, які використовуються в циклі, і призначення їм початкових значень. У цій частині можна записати декілька операторів, розділених комою, наприклад:

for ( int i = 0, j = 20; ...

int k, m;

for (k = 1, m = 0; ...

Областю дії змінних, оголошених в частині ініціалізації циклу, є цикл. Ініціалізація виконується один раз на початку виконання циклу.

Вираз типу bool визначає умову виконання циклу: якщо його результат рівний true, цикл виконується.

Модифікації виконуються після кожної ітерації циклу і служать для зміни параметрів циклу. У частині модифікацій можна записати декілька операторів через кому, наприклад:

for ( int i = 0, j = 20; i < 5 && j > 10; i++, j-- ) ...

Простий або складений оператор є тілом циклу. Будь-яка з частин оператора for може бути опущена (але крапки з комою треба залишити на своїх місцях!).

Приклад 4.8. Обчислення суми чисел від 1 до 100:

int s = 0;

for ( int i = 1; i <= 100; i++ )

s += i;

Приклад 4.9. Обчислення ступеню n числа, xn (для n>0)

static public double Power(double x, int n)

{

double z=1;

for (int i=1;n>=i;i++)

{

z = z*x;

}

return z;

}

Цикл перебору FOREACH

Новим видом циклу, не успадкованим від С++, є цикл foreach, зручний при роботі з масивами, колекціями та іншими подібними контейнерами даних.

Синтаксис циклу foreach :

foreach(тип ідентифікатор in контейнер)

{оператори}

Семантика циклу foreach

Тіло циклу виконується для кожного елемента в контейнері. Тип ідентифікатора повинен бути узгоджений з типом елементів, що зберігаються в контейнері даних.

Приклад 4.10

int[] a ={ 10, 20, 30, 40 };

foreach (int i in a) { System.Console.WriteLine(i); };

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]