V tomto článku se dozvíme o smyčce for v C # a různých způsobech jejich použití v programu.
V programování je často žádoucí provést určitý blok příkazů pro zadaný počet opakování. Možným řešením bude zadat tyto příkazy požadovaný počet opakování. Počet opakování však nemusí být znám předem (během doby kompilace) nebo možná dostatečně velký (řekněme 10 000).
Nejlepším řešením tohoto problému je smyčka. Smyčky se používají v programování k opakovanému provádění určitého bloku příkazů, dokud není splněna nějaká podmínka.
V tomto článku se podíváme na smyčku v C #.
C # pro smyčku
Pro klíčové slovo se používá k vytvoření pro smyčka v jazyce C #. Syntaxe smyčky for je:
for (initialization; condition; iterator) (// body of for loop)
Jak funguje smyčka?
- C # pro smyčce má tři příkazy:
initialization
,condition
aiterator
. - Příkaz
initialization
je proveden nejprve a pouze jednou. Zde je proměnná obvykle deklarována a inicializována. - Poté
condition
se vyhodnotí. Thecondition
je logický výraz, tj. Vrací buďtrue
nebofalse
. - Pokud
condition
se vyhodnotítrue
:- Příkazy uvnitř smyčky for jsou prováděny.
- Poté se provede
iterator
příkaz, který obvykle změní hodnotu inicializované proměnné. - Opět
condition
se vyhodnotí. - Proces pokračuje, dokud
condition
není vyhodnocen nafalse
.
- Pokud
condition
se vyhodnotí nafalse
, smyčka for se ukončí.
pro vývojový diagram smyčky
Příklad 1: C # pro smyčku
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); ) ) ) )
Když spustíme program, výstup bude:
C # Pro smyčku: Iterace 1 C # Pro smyčku: Iterace 2 C # Pro smyčku: Iterace 3 C # Pro smyčku: Iterace 4 C # Pro smyčku: Iterace 5
V tomto programu
initialization
prohlášení jeint i=1
condition
prohlášení jei<=5
iterator
prohlášení jei++
Po spuštění programu
- Nejprve je proměnná i deklarována a inicializována na 1.
- Poté
i<=5
se vyhodnotí podmínka ( ). - Protože se podmínka vrátí
true
, program poté provede tělo smyčky for. Vytiskne daný řádek s Iterací 1 (Iterace jednoduše znamená opakování). - Nyní je iterátor (
i++
) vyhodnocen. Tím se zvýší hodnota i na 2. - Podmínka (
i<=5
) se vyhodnotí znovu a na konci se hodnota i zvýší o 1. Podmínka se vyhodnotí natrue
prvních 5krát. - Když bude hodnota i 6 a podmínka bude
false
, smyčka bude ukončena.
Příklad 2: pro smyčku pro výpočet součtu prvních n přirozených čísel
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); ) ) )
Když spustíme program, výstup bude:
Součet prvních 5 přirozených čísel = 15
Zde se inicializuje hodnota součtu an na 0, respektive 5. Proměnná iterace i je inicializována na 1 a zvyšuje se při každé iteraci.
Uvnitř smyčky for je hodnota součtu zvýšena o i tj sum = sum + i
. Smyčka for pokračuje, dokud není i menší nebo rovno n (vstup uživatele).
Podívejme se, co se stane v daném programu při každé iteraci.
Zpočátku i = 1, součet = 0 an = 3
Pro kroky provedení smyčkyOpakování | Hodnota i | i <= 5 | Hodnota součtu |
---|---|---|---|
1 | 1 | skutečný | 0 + 1 = 1 |
2 | 2 | skutečný | 1 + 2 = 3 |
3 | 3 | skutečný | 3 + 3 = 6 |
4 | 4 | skutečný | 6 + 4 = 10 |
5 | 5 | skutečný | 10 + 5 = 15 |
6 | 6 | Nepravdivé | Smyčka končí |
Konečná hodnota součtu bude tedy 15, když n = 5.
Více výrazů uvnitř smyčky for
Můžeme také použít více výrazů uvnitř smyčky for. To znamená, že ve smyčce for můžeme mít více než jeden inicializační a / nebo iterační příkaz. Podívejme se na příklad níže.
Příklad 3: pro smyčku s více inicializačními a iteračními výrazy
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); ) ) ) )
Když spustíme program, výstup bude:
i = 0 a j = 0 i = 1 a j = 1 i = 2 a j = 2
V tomto programu jsme deklarovali a inicializovali dvě proměnné: i a j v inicializačním příkazu.
V části iterátoru máme také dva výrazy. To znamená, že i i j jsou při každé iteraci zvýšeny o 1.
Pro smyčku bez inicializace a příkazy iterátoru
Inicializace, podmínka a příkaz iterátoru jsou ve smyčce for volitelné. To znamená, že můžeme spustit smyčku for i bez těchto příkazů.
V takových případech funguje smyčka for jako while while. Podívejme se na příklad níže.
Příklad 4: pro smyčku bez inicializace a příkaz iterátoru
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++; ) ) ) )
Když spustíme program, výstup bude:
C # Pro smyčku: Iterace 1 C # Pro smyčku: Iterace 2 C # Pro smyčku: Iterace 3 C # Pro smyčku: Iterace 4 C # Pro smyčku: Iterace 5
V tomto příkladu jsme nepoužili příkaz inicializace a iterátoru.
Proměnná i se inicializuje nad smyčkou for a její hodnota se zvyšuje uvnitř těla smyčky. Tento program je stejný jako v příkladu 1.
Podobně je podmínkou také volitelný příkaz. Pokud však nepoužíváme testovací výraz, smyčka for nebude testovat žádné podmínky a bude fungovat navždy (nekonečná smyčka).
Nekonečné pro smyčku
Pokud je podmínka ve smyčce for vždy pravdivá, smyčka for bude fungovat navždy. Tomu se říká nekonečno pro smyčku.
Příklad 5: Nekonečno pro smyčku
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); ) ) ) )
Zde je i inicializováno na 1 a podmínka je i>0
. Při každé iteraci zvyšujeme hodnotu i o 1, takže podmínka nikdy nebude false
. To způsobí, že se smyčka provede nekonečně.
Můžeme také vytvořit nekonečnou smyčku nahrazením podmínky mezerou. Například,
for (;;) (// tělo smyčky for)
nebo
for (initialization;; iterator) (// body of for loop)