Ebben a cikkben megtudhatjuk a while és do… while ciklust a C # -ben, hogyan kell használni őket, és különbséget kell tenni közöttük.
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 megtanuljuk használni a ciklusok használatát a C # -ben.
C # while hurok
A while kulcsszó a while ciklus létrehozására szolgál a C # mezőben. A while ciklus szintaxisa:
while (teszt-kifejezés) (// a time test)
Hogyan működik a hurok?
- C # míg a hurok a-ból áll
test-expression
. - Ha a
test-expression
kiértékeljük, hogytrue
,- a while cikluson belüli utasítások végrehajtásra kerülnek.
- a végrehajtás után az
test-expression
értéket újra kiértékelik.
- Ha a
test-expression
értékeljük, hogyfalse
a while ciklus befejeződik.
miközben hurok Folyamatábra
1. példa: míg a hurok
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1; while (i<=5) ( Console.WriteLine("C# For Loop: Iteration (0)", i); 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
Kezdetben i értéke 1.
Amikor a program eléri a while ciklus utasítást,
i <=5
kiértékelik a teszt kifejezést . Mivel i = 1 és1 <= 5
aztrue
, hogy végrehajtja a test a while ciklus. Itt a sort az Iteráció 1-gyel kinyomtatják a képernyőre, és az i értékét 1-gyel növelve 2 lesz.- Most a teszt kifejezést (
i <=5
) újra kiértékeljük. Ezúttal is visszatér a kifejezéstrue
(2 <= 5), így a vonal kinyomtatásra kerül a képernyőn, és az i értéke mostantól 3-ra növekszik. - Ez megy, míg a while ciklus addig hajt végre, amíg i nem lesz 6. Ezen a ponton a teszt-kifejezés kiértékeli
false
és így a hurok véget ér.
2. példa: while ciklus az első 5 természetes szám összegének kiszámításához
using System; namespace Loop ( class WhileLoop ( public static void Main(string() args) ( int i=1, sum=0; while (i<=5) ( sum += i; i++; ) Console.WriteLine("Sum = (0)", sum); ) ) )
A program futtatásakor a kimenet a következő lesz:
Összeg = 15
Ez a program kiszámítja az első 5 természetes szám összegét.
- Kezdetben az összeg értéke 0-ra inicializálódik.
- Minden iterációnál az összeg értéke frissül,
sum+i
és az i értéke 1-gyel növekszik. - Amikor az i értéke eléri a 6 értéket, a teszt kifejezés
i<=5
hamis értéket ad vissza, és a hurok véget ér.
Lássuk, mi történik az adott programban az egyes iterációkon.
Kezdetben i = 1, összeg = 0
Míg a hurok végrehajtása lépésIsmé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.
C # do… while ciklus
A do és while kulcsszó a do… while ciklus létrehozására szolgál. Hasonló egy darab hurokhoz, azonban nagy különbség van közöttük.
A while ciklusban az állapotot a test végrehajtása előtt ellenőrizzük. Pontosan az ellenkezője van a do… while ciklusnak, vagyis az állapot ellenőrzése a test végrehajtása után történik.
Ez az oka annak, hogy a do… teste, míg a ciklus legalább egyszer végrehajtja a teszt-kifejezéstől függetlenül.
A do… while ciklus szintaxisa:
do (// do while loop törzs) while (teszt-kifejezés);
Hogyan… miközben a hurok működik?
- A do… teste, míg a ciklust először végrehajtják.
- Ezután a
test-expression
kiértékelődik. - Ha az
test-expression
vantrue
, a test hurok kerül végrehajtásra. - Ha a
test-expression
vanfalse
, akkor tedd … amíg a hurok véget ér.
csináld … közben folyamatábrát
3. példa: do… while ciklus
using System; namespace Loop ( class DoWhileLoop ( public static void Main(string() args) ( int i = 1, n = 5, product; do ( product = n * i; Console.WriteLine("(0) * (1) = (2)", n, i, product); i++; ) while (i <= 10); ) ) )
A program futtatásakor a kimenet a következő lesz:
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 5 * 10 = 50
As we can see, the above program prints the multiplication table of a number (5).
- Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
- Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
- After the execution of the loop’s body, the test expression
i <= 10
is evaluated. In total, the do… while loop will run for 10 times. - Finally, when the value of i is 11, the test-expression evaluates to
false
and hence terminates the loop.
Infinite while and do… while loop
If the test expression in the while and do… while loop never evaluates to false
, the body of loop will run forever. Such loops are called infinite loop.
For example:
Infinite while loop
while (true) (// a while ciklus törzse)
Végtelen do… while loop
do (// a hurok teste) while (igaz);
A végtelen ciklus akkor hasznos, ha hurokra van szükségünk, amíg a programunk fut.
Például, ha a program animáció, akkor folyamatosan futtatnia kell, amíg le nem áll. Ilyen esetekben végtelen ciklusra van szükség az animáció ismételt futtatásához.