C # за цикъл (с примери)

В тази статия ще научим за цикъла for в C # и различни начини за използването им в програма.

При програмирането често се желае да се изпълни определен блок от изрази за определен брой пъти. Възможно решение ще бъде да въведете тези изявления за необходимия брой пъти. Броят на повторенията обаче може да не е известен предварително (по време на компилиране) или може би достатъчно голям (да речем 10000).

Най-доброто решение на такъв проблем е цикълът. Цикли се използват при програмиране за многократно изпълнение на определен блок от инструкции, докато се изпълни някакво условие.

В тази статия ще разгледаме цикъла в C #.

C # за цикъл

В продължение на дума се използва за създаване на цикъл в C #. Синтаксисът за цикъл for е:

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

Как работи цикълът?

  1. C # за линия има три изявления: initialization, conditionи iterator.
  2. В initializationконструкцията се изпълнява на първо и само веднъж. Тук променливата обикновено се декларира и инициализира.
  3. След това conditionсе оценява. Това conditionе булев израз, т.е. той връща или trueили false.
  4. Ако conditionсе оценява на true:
    1. Изявленията в цикъла for се изпълняват.
    2. След това iteratorсе изпълнява операторът, който обикновено променя стойността на инициализираната променлива.
    3. Отново conditionсе оценява.
    4. Процесът продължава, докато conditionсе оцени false.
  5. Ако conditionсе оцени на false, цикълът for се прекратява.

за Loop Flow Chart

Пример 1: C # за Loop

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1; i<=5; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 C # За цикъл: Итерация 1 C # За цикъл: Итерация 2 C # За цикъл: Итерация 3 C # За цикъл: Итерация 4 C # За цикъл: Итерация 5

В тази програма,

  • initialization изявлението е int i=1
  • condition изявлението е i<=5
  • iterator изявлението е i++

Когато програмата се изпълни,

  • Първо променливата i се декларира и инициализира до 1.
  • След това i<=5се оценява условието ( ).
  • Тъй като условието се връща true, програмата след това изпълнява тялото на цикъла for. Той отпечатва дадения ред с итерация 1 (итерацията просто означава повторение).
  • Сега итераторът ( i++) се оценява. Това увеличава стойността на i до 2.
  • Условието ( i<=5) се оценява отново и в края стойността на i се увеличава с 1. Условието ще оцени trueна първите 5 пъти.
  • Когато стойността на i ще бъде 6 и условието ще бъде false, следователно цикълът ще прекрати.

Пример 2: за цикъл за изчисляване на сумата от първите n естествени числа

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int n = 5,sum = 0; for (int i=1; i<=n; i++) ( // sum = sum + i; sum += i; ) Console.WriteLine("Sum of first (0) natural numbers = (1)", n, sum); ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 Сума от първите 5 естествени числа = 15

Тук стойността на sum и n се инициализира съответно на 0 и 5. Променливата за итерация i се инициализира до 1 и се увеличава при всяка итерация.

Вътре в цикъла for стойността на сумата се увеличава с i ie sum = sum + i. Цикълът for продължава, докато i е по-малко или равно на n (въведените от потребителя).

Нека да видим какво се случва в дадената програма на всяка итерация.

Първоначално i = 1, сума = 0 и n = 3

За стъпки за изпълнение на цикъл
Повторение Стойност на i i <= 5 Стойност на сумата
1 1 вярно 0 + 1 = 1
2 2 вярно 1 + 2 = 3
3 3 вярно 3 + 3 = 6
4 4 вярно 6 + 4 = 10
5 5 вярно 10 + 5 = 15
6 6 невярно Цикълът завършва

И така, крайната стойност на сумата ще бъде 15, когато n = 5.

Множество изрази в цикъл for

Също така можем да използваме множество изрази в цикъл for. Това означава, че можем да имаме повече от един оператор за инициализация и / или итератор в цикъл for. Нека да видим примера по-долу.

Пример 3: за цикъл с множество изрази за инициализация и итератор

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=0, j=0; i+j<=5; i++, j++) ( Console.WriteLine("i = (0) and j = (1)", i,j); ) ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 i = 0 и j = 0 i = 1 и j = 1 i = 2 и j = 2

В тази програма декларирахме и инициализирахме две променливи: i и j в оператора за инициализация.

Също така имаме два израза в итераторната част. Това означава, че и i, и j се увеличават с 1 за всяка итерация.

За цикъл без инициализация и итератор

Инициализацията, условието и итераторът не са задължителни в цикъл for. Това означава, че можем да изпълним цикъл for и без тези изявления.

В такива случаи цикълът for действа като цикъл while. Нека да видим примера по-долу.

Пример 4: за цикъл без инициализация и оператор на итератор

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( int i = 1; for ( ; i<=5; ) ( Console.WriteLine("C# For Loop: Iteration (0)", i); i++; ) ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 C # За цикъл: Итерация 1 C # За цикъл: Итерация 2 C # За цикъл: Итерация 3 C # За цикъл: Итерация 4 C # За цикъл: Итерация 5

В този пример не сме използвали оператора за инициализация и итератор.

Променливата i се инициализира над цикъла for и нейната стойност се увеличава вътре в тялото на цикъла. Тази програма е същата като тази в пример 1.

По същия начин условието е и незадължителен израз. Ако обаче не използваме тестов израз, цикълът for няма да тества никакво условие и ще работи завинаги (безкраен цикъл).

Безкраен за цикъл

Ако условието в цикъл for винаги е вярно, цикълът for ще работи завинаги. Това се нарича безкрайно за цикъл.

Пример 5: Безкрайно за цикъл

 using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( for (int i=1 ; i>0; i++) ( Console.WriteLine("C# For Loop: Iteration (0)", i); ) ) ) ) 

Тук i се инициализира на 1 и условието е i>0. На всяка итерация увеличаваме стойността на i с 1, така че условието никога няма да бъде false. Това ще доведе до безкрайно изпълнение на цикъла.

Можем също да създадем безкраен цикъл, като заменим условието с празно. Например,

 for (;;) (// тяло на for цикъл) 

или

 for (инициализация;; итератор) (// тяло на цикъл for) 

Интересни статии...