Ebben a cikkben megismerjük a C # ciklusra vonatkozó tudnivalókat, valamint a programban történő felhasználásuk különböző módjait.
A programozás során gyakran kívánatos végrehajtani bizonyos utasításblokkot meghatározott számú alkalommal. Lehetséges megoldás az, hogy ezeket az utasításokat a szükséges számú alkalommal beírja. Előfordulhat azonban, hogy az ismétlések száma nem ismert előre (a fordítási idő alatt), vagy esetleg elég nagy (mondjuk 10000).
A legjobb megoldás erre a problémára a hurok. A programozási ciklusokat arra használják, hogy egy bizonyos utasításblokkot ismételten végrehajtsanak, amíg valamely feltétel nem teljesül.
Ebben a cikkben megnézzük a C # ciklusát.
C # a hurokhoz
A for kulcsszót a ciklus létrehozására használják a C # -ben. A ciklus szintaxisa :
for (inicializálás; feltétel; iterátor) (// a hurok törzse)
Hogyan működik a hurok?
- C # hurok három nyilatkozatai:
initialization
,condition
ésiterator
. - A
initialization
nyilatkozatot először és csak egyszer hajtják végre. Itt a változót általában deklarálják és inicializálják. - Ezután
condition
kiértékeli. Azcondition
egy logikai kifejezés, vagyis vagy a,true
vagyfalse
. - Ha a
condition
következőt értékeliktrue
:- A for cikluson belüli utasítások végrehajtásra kerülnek.
- Ezután
iterator
végrehajtásra kerül az utasítás, amely általában megváltoztatja az inicializált változó értékét. - Ismét az
condition
értékelik. - A folyamat addig folytatódik, amíg a
condition
értékeljük, hogyfalse
.
- Ha az
condition
értéket kiértékelifalse
, a for ciklus véget ér.
a Loop folyamatábra számára
1. példa: C # a hurokhoz
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); ) ) ) )
A program futtatásakor a kimenet a következő lesz:
C # Hurok esetén: Iteráció 1 C # Hurok esetén: Iteráció 2 C # Hurok esetén: Iteráció 3 C # Hurok esetén: Iteráció 4 C # Hurok esetén: Iteráció 5
Ebben a programban
initialization
állítás azint i=1
condition
állítás azi<=5
iterator
állítás azi++
Amikor a program fut,
- Először az i változót deklaráljuk és inicializáljuk 1-re.
- Ezután a feltétel (
i<=5
) kiértékelésre kerül. - Mivel a feltétel visszatér
true
, a program végrehajtja a for ciklus törzsét. Az adott sort az Iteration 1-vel nyomtatja ki (az Iteration egyszerűen megismétlést jelent). - Most az iterátort (
i++
) értékelik. Ez növeli az i értékét 2-re. - A (
i<=5
) feltételt újra kiértékeljük, és a végén az i értékét 1-gyel növeljük. A feltételtrue
az első 5 alkalommal értékelődik . - Amikor az i értéke 6 lesz
false
, a feltétel pedig, akkor a hurok véget ér.
2. példa: a ciklushoz az első n természetes szám összegének kiszámításához
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); ) ) )
A program futtatásakor a kimenet a következő lesz:
Az első 5 természetes szám összege = 15
Itt az összeg és n értékét inicializáljuk 0-ra, illetve 5-re. Az i iterációs változót 1-re inicializáljuk, és minden egyes iterációnál növekszünk.
A for cikluson belül az összeg értékét növekszik i azaz sum = sum + i
. A for ciklus addig folytatódik, amíg i értéke kisebb vagy egyenlő, mint n (felhasználói bemenet).
Lássuk, mi történik az adott programban az egyes iterációkon.
Kezdetben i = 1, összeg = 0 és n = 3
A hurok végrehajtási lépéseihezIsmétlés | I értéke | i <= 5 | Az összeg értéke |
---|---|---|---|
1 | 1 | igaz | 0 + 1 = 1 |
2 | 2 | igaz | 1 + 2 = 3 |
3 | 3 | igaz | 3 + 3 = 6 |
4 | 4 | igaz | 6 + 4 = 10 |
5. | 5. | igaz | 10 + 5 = 15 |
6. | 6. | hamis | A hurok véget ér |
Tehát az összeg végső értéke 15 lesz, ha n = 5.
Több kifejezés egy for cikluson belül
Több kifejezést is használhatunk egy for for cikluson belül. Ez azt jelenti, hogy egy for cikluson belül több inicializálási és / vagy iterációs utasítással rendelkezhetünk. Lássuk az alábbi példát.
3. példa: többszörös inicializálási ciklushoz és iterátor kifejezésekkel
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); ) ) ) )
A program futtatásakor a kimenet a következő lesz:
i = 0 és j = 0 i = 1 és j = 1 i = 2 és j = 2
Ebben a programban két változót deklaráltunk és inicializáltunk: i és j az inicializációs utasításban.
Az iterátor részben két kifejezésünk is van. Ez azt jelenti, hogy mind az i, mind a j minden egyes iterációban 1-gyel növekszik.
Inicializálás nélküli ciklus és iterátor utasítások nélkül
The initialization, condition and the iterator statement are optional in a for loop. It means we can run a for loop without these statements as well.
In such cases, for loop acts as a while loop. Let's see the example below.
Example 4: for loop without initialization and iterator statement
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++; ) ) ) )
When we run the program, the output will be:
C# For Loop: Iteration 1 C# For Loop: Iteration 2 C# For Loop: Iteration 3 C# For Loop: Iteration 4 C# For Loop: Iteration 5
In this example, we haven't used the initialization and iterator statement.
The variable i is initialized above the for loop and its value is incremented inside the body of loop. This program is same as the one in Example 1.
Hasonlóképpen, a feltétel szintén választható utasítás. Ha azonban nem használunk teszt kifejezést, akkor a for ciklus nem tesztel semmilyen feltételt, és örökké fog futni (végtelen ciklus).
Végtelen a hurokért
Ha a for ciklusban szereplő feltétel mindig igaz, akkor a ciklus örökké fog futni. Ezt végtelen ciklusnak nevezzük.
5. példa: Végtelen a hurokhoz
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); ) ) ) )
Itt i-t inicializáljuk 1-re, és a feltétel az i>0
. Minden iteráción növeljük az i értékét 1-gyel, így a feltétel soha nem lesz false
. Ez a hurok végtelen végrehajtását fogja eredményezni.
Végtelen ciklust is létrehozhatunk, ha a feltételt üresre cseréljük. Például,
for (;;) (// hurok törzse)
vagy
for (inicializálás;; iterátor) (// a hurok törzse)