Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz 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, bi 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, żecounterjest zmienną pętli i ustawia jej początkową wartość na0. - Środkowa część to dla warunku:
counter < 10deklaruje, że ta pętlaforbę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, żecounterzwię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, dolub 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
ifokreśla warunek, na podstawie którego można ustalić, czy liczba powinna być uwzględniona w sumie. - Pętla
formoż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?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
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