Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Instrukcje i pętle języka C#
W tym samouczku przedstawiono sposób pisania kodu w języku C#, który analizuje zmienne i zmienia ścieżkę wykonywania na podstawie tych zmiennych. Napiszesz kod w języku C# i zobaczysz wyniki kompilowania i uruchamiania. Samouczek zawiera serię lekcji, które eksplorują konstrukcje rozgałęziania i pętli w języku C#. Te lekcje nauczą Cię podstaw języka C#.
Napiwek
Gdy blok fragmentu kodu zawiera przycisk "Uruchom", ten przycisk otwiera okno interakcyjne lub zastępuje istniejący kod w oknie interaktywnym. Gdy fragment kodu nie zawiera przycisku "Uruchom", możesz skopiować kod i dodać go do bieżącego okna interaktywnego.
Uruchom następujący kod w oknie interaktywnym. Wybierz pozycję Uruchom:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Zmodyfikuj deklarację b
, aby suma jest mniejsza niż 10:
int b = 3;
Ponownie wybierz przycisk Uruchom. Ponieważ odpowiedź jest mniejsza niż 10, nic nie jest drukowane. Warunek , który testujesz, ma wartość false. Nie masz żadnego kodu do wykonania, ponieważ napisałeś tylko jedną z możliwych gałęzi dla instrukcji if
: true branch.
Napiwek
Podczas eksplorowania języka C# (lub dowolnego języka programowania) popełniasz błędy podczas pisania kodu. Kompilator odnajduje te błędy i zgłasza je Tobie. Gdy dane wyjściowe zawierają komunikaty o błędach, przyjrzyj się bliżej przykładowemu kodowi i kodowi w oknie interaktywnym, aby zobaczyć, co należy naprawić. To ćwiczenie pomaga poznać strukturę kodu w języku C#.
W tym pierwszym przykładzie przedstawiono możliwości typów if
i boolean. Zmienna logiczna to wartość, która może przyjmować jedną z dwóch wartości: true
lub false
. Język C# definiuje specjalny typ, bool
dla zmiennych logicznych. Instrukcja if
sprawdza wartość bool
. Gdy wartość wynosi true
, wykonuje się instrukcja następująca po if
. W przeciwnym razie zostanie pominięty.
Ten proces sprawdzania warunków i wykonywania instrukcji na podstawie tych warunków jest potężny. Przyjrzyjmy się więcej.
Spraw, aby instrukcje 'if' i 'else' współpracowały ze sobą.
Aby wykonać inny kod zarówno w gałęziach true, jak i false, należy utworzyć gałąź else
wykonywaną, gdy warunek ma wartość false. Spróbuj wykonać następujący kod:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
Instrukcja, która następuje po słowie kluczowym else
, jest wykonywana tylko wtedy, gdy sprawdzany warunek to false
. Połączenie if
i else
z warunkami logicznymi zapewnia pełnię potrzebnej mocy.
Ważny
Wcięcie pod instrukcjami if
i else
jest przeznaczone dla czytelników. Język C# nie traktuje wcięcia ani białych znaków jako znaczących. Instrukcja jest wykonywana na podstawie warunku po słowie kluczowym if
lub else
. Wszystkie przykłady w tym samouczku stosują powszechną praktykę wcięcia linii zgodnie z przepływem sterowania.
Ponieważ wcięcie nie ma większego znaczenia, trzeba użyć {
i }
, aby wskazać, kiedy więcej niż jedna instrukcja powinna być częścią warunkowo wykonywanego bloku. Programiści języka C# zwykle używają tych nawiasów klamrowych we wszystkich klauzulach if
i else
. Poniższy przykład jest taki sam jak utworzony przez Ciebie. Wypróbuj.
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Napiwek
W pozostałej części tego samouczka wszystkie przykłady kodu obejmują nawiasy klamrowe, zgodnie z przyjętą praktyką.
Możesz przetestować bardziej skomplikowane warunki:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
Symbol ==
testuje równość . Użycie ==
odróżnia test równości od przypisania, który był widoczny w a = 5
.
&&
reprezentuje "i". Oznacza to, że oba warunki muszą być prawdziwe, aby wykonać instrukcję w prawdziwej gałęzi. Te przykłady również pokazują, że w każdej gałęzi warunkowej można mieć wiele instrukcji, pod warunkiem, że są one ujęte w {
i }
.
Można również użyć ||
do reprezentowania ciągu "lub":
if ((a + b + c > 10) || (a == b))
Zmodyfikuj wartości a
, b
i c
oraz przełączaj się między &&
i ||
, aby eksplorować. Uzyskujesz większe zrozumienie działania operatorów &&
i ||
.
Używanie pętli do powtarzania operacji
Kolejnym ważnym pojęciem do tworzenia większych programów są pętle. Pętle służą do powtarzania instrukcji, które mają być wykonywane więcej niż raz. Wypróbuj ten kod w oknie interaktywnym:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
Instrukcja while
sprawdza warunek i wykonuje instrukcję następującą po while
. Powtarza sprawdzanie warunku i wykonywanie tych instrukcji do momentu, gdy warunek ma wartość false.
W tym przykładzie jest jeszcze jeden nowy operator.
++
po zmiennej counter
jest operatorem przyrostu. Dodaje 1 do wartości licznika i przechowuje ją w zmiennej licznika.
Ważny
Upewnij się, że warunek pętli while
przechodzi na wartość false podczas wykonywania kodu. W przeciwnym razie utworzysz nieskończoną pętlę, w której program nigdy się nie kończy. Nie demonstrujmy tego, ponieważ silnik, który uruchamia twój kod, może się zawiesić, a Ty nie zobaczysz żadnych wyników z programu.
Pętla while
testuje warunek przed wykonaniem kodu zgodnie z while
. Pętla do
... while
najpierw wykonuje kod, a następnie sprawdza warunek. Wygląda na to:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Ta pętla do
i wcześniejsza pętla while
działają tak samo.
Przejdźmy do ostatniej instrukcji pętli.
Praca z pętlą 'for'
Inna typowa instrukcja pętli widoczna w kodzie języka C# to pętla for
. Wypróbuj ten kod w oknie interaktywnym:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Poprzednia pętla for
wykonuje tę samą pracę, co pętla while
i pętla do
, które już zostały użyte. Instrukcja for
ma trzy części, które kontrolują sposób jego działania:
- Pierwszą częścią jest dla inicjatora:
int counter = 0;
deklaruje, żecounter
jest zmienną pętli i ustawia jej początkową wartość na0
. - Środkowa część to dla warunku:
counter < 10
deklaruje, że ta pętlafor
będzie nadal wykonywana, o ile wartość licznika jest mniejsza niż 10. - Ostatnią częścią jest dla iteratora:
counter++
określa sposób modyfikowania zmiennej pętli po wykonaniu bloku po instrukcjifor
. W tym miejscu określa, żecounter
zwiększa się o 1 przy każdym wykonaniu bloku.
Samodzielnie poeksperymentuj z tymi warunkami. Spróbuj wykonać każdą z następujących zmian:
- Zmień inicjalizator, aby rozpoczynał się od innej wartości.
- Zmień warunek, aby zatrzymać się na innej wartości.
Gdy skończysz, przejdźmy do samodzielnego pisania kodu, aby użyć poznanych informacji.
W tym samouczku nie opisano innej instrukcji pętli: instrukcji foreach
. Instrukcja foreach
powtarza instrukcję dla każdego elementu w sekwencji elementów. Jest ona najczęściej używana z kolekcjami . Będzie omówione w następnym tutorialu.
Utworzone zagnieżdżone pętle
Pętla while
, do
lub for
może być zagnieżdżona wewnątrz innej pętli, aby utworzyć macierz przy użyciu kombinacji każdego elementu w pętli zewnętrznej z każdym elementem w pętli wewnętrznej. Aby utworzyć zestaw par alfanumerycznych reprezentujących wiersze i kolumny, wykonajmy tę czynność.
Jedna pętla for
może wygenerować wiersze:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Kolejna pętla może wygenerować kolumny:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Można zagnieżdżać jedną pętlę wewnątrz drugiej do tworzenia par:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Można zauważyć, że pętla zewnętrzna jest zwiększana raz dla każdego pełnego uruchomienia pętli wewnętrznej. Odwróć zagnieżdżanie wierszy i kolumn, i zobacz zmiany sam.
Łączenie gałęzi i pętli
Po wyświetleniu instrukcji if
i konstrukcji pętli w języku C#, sprawdź, czy możesz napisać kod języka C#, aby znaleźć sumę wszystkich liczb całkowitych od 1 do 20, które są podzielne przez 3. Oto kilka wskazówek:
- Operator
%
daje pozostałą część operacji dzielenia. - Instrukcja
if
określa warunek, na podstawie którego można ustalić, czy liczba powinna być uwzględniona w sumie. - Pętla
for
może pomóc powtórzyć serię kroków dla wszystkich liczb od 1 do 20.
Wypróbuj to samodzielnie. Następnie sprawdź, jak to zrobiłeś. Jako wskazówka, odpowiedzią powinno być 63.
Czy wymyśliłeś coś takiego?
Ukończono interaktywny samouczek "gałęzi i pętli". Możesz wybrać link kolekcji list , aby rozpocząć następny interaktywny samouczek, lub odwiedzić witrynę .NET , aby pobrać zestaw SDK platformy .NET, utworzyć projekt na maszynie i kontynuować kodowanie. Sekcja "Następne kroki" umożliwia powrót do tych samouczków.
Więcej informacji na temat tych pojęć można uzyskać w następujących artykułach:
- instrukcje selekcji
- Instrukcje iteracji