W tym artykule dowiemy się o pętli while i do… while w języku C #, jak ich używać i jakie są różnice między nimi.
W programowaniu często pożądane jest wykonanie określonego bloku instrukcji określoną liczbę razy. Możliwym rozwiązaniem będzie wpisanie tych instrukcji wymaganą liczbę razy. Jednak liczba powtórzeń może nie być znana z góry (w czasie kompilacji) lub może być wystarczająco duża (powiedzmy 10000).
Najlepszym rozwiązaniem tego problemu jest pętla. Pętle są używane w programowaniu do wielokrotnego wykonywania określonego bloku instrukcji, dopóki nie zostanie spełniony jakiś warunek.
W tym artykule nauczymy się używać pętli while w języku C #.
C # pętla while
Natomiast parametr jest używany do tworzenia pętli while w języku C #. Składnia pętli while to:
while (test-expression) (// body of while)
Jak działa pętla while?
- C # pętla while składa się z pliku
test-expression
. - Jeśli
test-expression
jest oceniany jakotrue
,- wykonywane są instrukcje wewnątrz pętli while.
- po wykonaniu
test-expression
jest oceniany ponownie.
- Jeśli wartość
test-expression
jest szacowana nafalse
, pętla while kończy działanie.
pętla while Schemat blokowy
Przykład 1: while Loop
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++; ) ) ) )
Kiedy uruchomimy program, wynik będzie:
C # For Loop: Iteracja 1 C # For Loop: Iteracja 2 C # For Loop: Iteracja 3 C # For Loop: Iteracja 4 C # For Loop: Iteracja 5
Początkowo wartość i wynosi 1.
Gdy program osiągnie instrukcję pętli while,
- wartość wyrażenia testowego
i <=5
. Ponieważ i jest 1 i1 <= 5
jesttrue
, wykonuje treść pętli while. Tutaj linia jest drukowana na ekranie z Iteracją 1, a wartość i jest zwiększana o 1 do 2. - Teraz wyrażenie testowe (
i <=5
) jest ponownie oceniane. Tym razem również wyrażenie zwracatrue
(2 <= 5), więc wiersz jest drukowany na ekranie, a wartość i jest teraz zwiększana do 3… - To się dzieje i pętla while jest wykonywana, aż i stanie się 6. W tym momencie wyrażenie testowe zostanie oszacowane do
false
i stąd pętla się zakończy.
Przykład 2: pętla while do obliczenia sumy pierwszych 5 liczb naturalnych
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); ) ) )
Kiedy uruchomimy program, wynik będzie:
Suma = 15
Ten program oblicza sumę pierwszych 5 liczb naturalnych.
- Początkowo wartość sum jest inicjalizowana na 0.
- W każdej iteracji wartość sum jest aktualizowana do,
sum+i
a wartość i jest zwiększana o 1. - Gdy wartość i osiągnie 6, wyrażenie testowe
i<=5
zwróci wartość false i pętla zostanie zakończona.
Zobaczmy, co dzieje się w danym programie w każdej iteracji.
Początkowo i = 1, suma = 0
Podczas wykonywania kroków pętliIteracja | Wartość i | i <= 5 | Wartość sumy |
---|---|---|---|
1 | 1 | prawdziwe | 0 + 1 = 1 |
2 | 2 | prawdziwe | 1 + 2 = 3 |
3 | 3 | prawdziwe | 3 + 3 = 6 |
4 | 4 | prawdziwe | 6 + 4 = 10 |
5 | 5 | prawdziwe | 10 + 5 = 15 |
6 | 6 | fałszywy | Pętla się kończy |
Tak więc ostateczna wartość sumy wyniesie 15.
C # zrób… pętla while
Zrobić i gdy parametr jest używany do tworzenia pętli do … while. Jest to podobne do pętli while, jednak istnieje między nimi duża różnica.
W pętli while warunek jest sprawdzany przed wykonaniem treści. W pętli do… while jest dokładnie odwrotnie, tzn. Stan jest sprawdzany po wykonaniu treści.
Dlatego też treść pętli do… while zostanie wykonana przynajmniej raz, niezależnie od wyrażenia testowego.
Składnia pętli do… while to:
do (// treść pętli do while) while (wyrażenie testowe);
Jak działa… pętla while?
- Ciało pętli do… while jest wykonywane jako pierwsze.
- Następnie
test-expression
jest oceniany. - Jeśli
test-expression
jesttrue
, wykonywana jest treść pętli. - Kiedy
test-expression
jestfalse
, wykonaj… while pętla się kończy.
wykonaj… pętla while Schemat blokowy
Przykład 3: wykonaj… while pętla
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); ) ) )
Kiedy uruchomimy program, wynik będzie:
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) (// treść pętli while)
Nieskończona pętla do… while
do (// treść pętli while) while (true);
Nieskończona pętla jest przydatna, gdy potrzebujemy pętli do działania tak długo, jak działa nasz program.
Na przykład, jeśli twój program jest animacją, będziesz musiał go ciągle uruchamiać, dopóki nie zostanie zatrzymany. W takich przypadkach nieskończona pętla jest niezbędna do wielokrotnego uruchamiania animacji.