У овом чланку ћемо научити о петљи фор у Ц # и различитим начинима њихове употребе у програму.
У програмирању је често пожељно извршити одређени блок наредби одређени број пута. Могуће решење биће укуцавање тих изјава потребан број пута. Међутим, број понављања можда није познат унапред (током времена компајлирања) или можда довољно велик (рецимо 10000).
Најбоље решење за такав проблем је петља. Петље се користе у програмирању за вишекратно извршавање одређеног блока израза док се не испуни неки услов.
У овом чланку ћемо погледати петљу у Ц #.
Ц # за петљу
За кључну реч се користи за креирање за петљу у Ц #. Синтакса фор петље је:
фор (иницијализација; услов; итератор) (// тело фор петље)
Како ради петља?
- , Ц # за петљу има три изјаве:
initialization
,condition
иiterator
. initialization
Саопштењу се извршава на почетку и само једном. Овде се променљива обично декларише и иницијализује.- Затим
condition
се процењује. Тоcondition
је логички израз, тј. Враћа илиtrue
илиfalse
. - Ако
condition
се процењује наtrue
:- Изводи унутар петље фор се извршавају.
- Затим
iterator
се извршава израз који обично мења вредност иницијализоване променљиве. - Поново
condition
се процењује. - Процес се наставља док се
condition
не процениfalse
.
- Ако
condition
се процењује наfalse
, петља фор се завршава.
за Лооп дијаграм тока
Пример 1: Ц # за петљу
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); ) ) ) )
Када покренемо програм, излаз ће бити:
Ц # За петљу: Итерација 1 Ц # За петљу: Итерација 2 Ц # За петљу: Итерација 3 Ц # За петљу: Итерација 4 Ц # За петљу: Итерација 5
У овом програму,
initialization
изјава јеint i=1
condition
изјава јеi<=5
iterator
изјава јеi++
Када се програм покрене,
- Прво се променљива и декларише и иницијализује у 1.
- Затим
i<=5
се процењује стање ( ). - Пошто се услов враћа
true
, програм затим извршава тело фор петље. Дату линију исписује с понављањем 1 (понављање једноставно значи понављање). - Сада
i++
се процењује итератор ( ). Ово повећава вредност и на 2. - Услов (
i<=5
) се поново процењује и на крају се вредност и увећава за 1. Услов ће проценити наtrue
првих 5 пута. - Када вредност и буде 6, а услов буде
false
, отуда ће се петља завршити.
Пример 2: за петљу за израчунавање зброја првих н природних бројева
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
Овде су вредности збира и н иницијализоване на 0 односно 5. Варијабла итерације и је иницијализована на 1 и увећана на свакој итерацији.
Унутар петље фор вредност суме се увећава за и ие sum = sum + i
. Петља фор наставља се све док и није мање или једнако н (унос корисника).
Погледајмо шта се дешава у датом програму на свакој итерацији.
У почетку је и = 1, збир = 0 и н = 3
За кораке извршавања петљеПонављање | Вредност и | и <= 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 када је н = 5.
Више израза унутар фор петље
Такође можемо користити више израза унутар фор петље. То значи да можемо имати више од једне наредбе иницијализације и / или итератора унутар фор петље. Погледајмо пример испод.
Пример 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); ) ) ) )
Када покренемо програм, излаз ће бити:
и = 0 и ј = 0 и = 1 и ј = 1 и = 2 и ј = 2
У овом програму декларисали смо и иницирали две променљиве: и и ј у изразу иницијализације.
Такође, у итераторском делу имамо два израза. То значи да се и и ј повећавају за 1 на свакој итерацији.
За петљу без иницијализације и наредби итератора
Иницијализација, услов и израз итератора нису обавезни у фор петљи. То значи да можемо покренути фор петљу и без ових изјава.
У таквим случајевима, фор петља делује као вхиле петља. Погледајмо пример испод.
Пример 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++; ) ) ) )
Када покренемо програм, излаз ће бити:
Ц # За петљу: Итерација 1 Ц # За петљу: Итерација 2 Ц # За петљу: Итерација 3 Ц # За петљу: Итерација 4 Ц # За петљу: Итерација 5
У овом примеру нисмо користили наредбу иницијализације и итератора.
Променљива и је иницијализована изнад фор петље и њена вредност се увећава унутар тела петље. Овај програм је исти као онај у примеру 1.
Слично томе, услов је такође необавезна изјава. Међутим, ако не користимо тест израз, фор петља неће тестирати ниједно стање и радиће заувек (бесконачна петља).
Бесконачно за петљу
Ако је услов у фор петљи увек тачан, фор петља ће трајати заувек. Ово се назива бесконачно за петљу.
Пример 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); ) ) ) )
Овде је и иницијализовано на 1 и услов је i>0
. На свакој итерацији повећавамо вредност и за 1, тако да услов никада неће бити false
. Ово ће проузроковати бескрајно извршавање петље.
Такође можемо створити бесконачну петљу заменом услова празнином. На пример,
фор (;;) (// тело фор петље)
или
фор (иницијализација;; итератор) (// тело фор петље)