Strona '' nie istnieje » Kurs C# » Instrukcja Warunkowa
 

Instrukcja Warunkowa

Wstęp

Program to przede wszystkim zestaw instrukcji, które mają za zadanie wykonać określone operacje na pewnym danych wejściowych i potem pewne dane zwrócić. Bardzo często istnieje potrzeba, aby w zależności od pewnej wartości program wykonał inne operacje, albo wstrzymał wykonywanie. W celu przekierowania programu, aby wykonał inny zestaw instrukcji służy instrukcja warunkowa if.

Definicja

Instrukcja warunkowa rozpoczyna się słowem kluczowym if. Następnie w nawiasach okrągłych należy wpisać odpowiedni warunek. Jeśli warunek będzie prawdziwy to program nie wykona instrukcji zawartych w instrukcji if. Jeśli do wykonania w przypadku prawidzwego warunku jest więcej niż jedna instrukcja to należy je zapisać w nawiasach klamrowych. Poniżej został podany wzór zapisu funkcji:

  1. if( warunek ) {
  2.   instrukcje, gdy warunek prawdziwy
  3. }

Warunek może dotyczyć np. porównania dwóch wartości liczbowych i/lub wykonania na wielu porównaniach/wartościach operacji logicznych. Końcowa wartość warunku musi być wartością logiczną prawda/fałsz. Przykładowo jeśli oczekujemy, żeby użytkownik wpisał konkretną wartość liczbową i chcemy sprawdzić czy możemy mu wyświetlić tajną wiadomość wystarczy, że napiszemy:

  1. if (a == 1234) {
  2.   Console.WriteLine("Tajna wiadomość");
  3. }

Jeśli jednak podany kod będzie zły to możnaby dopisać dodatkową informacje np. "Zły kod". Dzięki temu użytkownik by wiedział, że tajna wiadomość nie jest pusta. Jednak im mniej warunków if tym kod jest bardziej czytelny, więc można skorzystać z słowa kluczowego else, a ponim dopisać instrukcje do wykonania jeśli warunek okaże sie nieprawdziwy. Oto ogólna postać instrukcji if .. else ..:

  1. if( warunek ) {
  2.   instrukcje, gdy warunek prawdziwy
  3. } else {
  4.   instrukcje, gdy warunek fałszywy
  5. }

Teraz napisany wcześniej kod można odpowiednio dostować tak, aby w przypadku wpisania złego kodu wyświetlił odpowiednie powiadomienie:

  1. if (a == 1234) {
  2.   Console.WriteLine("Tajna wiadomość");
  3. }
  4. else {
  5.   Console.WriteLine("Zły kod");
  6. }

Warunki

Porównania arytmetyczne

Zazwyczaj w warunkach zapisuje się pewne porównania arytmetyczne. Mogą one dotyczyć między innymi sprawdzenia czy liczby są takie same, albo czy jedna jest większa od drugiej. Poniższa tabelka opisuje podstawowe operatory porównania:

PorównanieZnaczenie
a == bczy a takie same jak b?
a != bczy a i b są różne?
a > bczy a większe od b?
a < bczy a mniejsze od b?
a >= bczy a większe, równe b?
a <= bczy a mniejsze, równe b?
!anieprawda, że a

W powyższych przykładach istnieje możliwość podstawienia pod a i b np. jakichś wyrażeń matematycznych. To bardzo ważne, żeby zapamiętać wszystkie wymienione operatory, ponieważ sterowanie programem staje się wtedy o wiele prostsze.

Operatory logiczne

Same operatory arytmetyczne nie zawsze są wystarczające. Czasem programiście zależy, aby instrukcje zostały wykonane jeśli więcej niż jeden warunek został spełniony. Porogram musi jednak wiedzieć jak połączyć kilka wartości logicznych. W celu połączenie dwóch wartości należy skorzystać z odpowiednich operatorów:

OperatorCzytamyZnaczenie
a && biprawda, gdy oba prawdziwe
a || blubprawda, gdy chociaż jeden prawdziwy

Przykładowo jeśli chcemy sprawdzić czy liczba jest z pewnego zakresu od do to należy skorzystać z operatora &&. Wtedy możemy np. narzucić, że liczba musi być większa od 10 i mniejsza, równa od 20. Wtedy warunek mógłby wyglądać następująco:

  1. if (a > 10 && a <= 20) {
  2.   Console.WriteLine("Podano liczbę z zakresu");
  3. }
  4. else {
  5.   Console.WriteLine("Liczba spoza zakresu!");
  6. }

Drugi operator || może się przydać do wybierania np. konkretnych wartości zmiennej a. Przypuśćmy, że chcemy coś wykonać tylko wtedy, gdy zmienna przyjmie wartość 0 lub 2. Wtedy warunek zapiszemy następująco:

  1. if (a == 0 || a == 2) {
  2.   Console.WriteLine("Wpisano 0 lub 2");
  3. }
  4. else {
  5.   Console.WriteLine("Liczba inna niż 0 lub 2");
  6. }

Uwaga końcowa

Warunki są podstawą programowania i zapamiętanie podstwowych operatorów porównań oraz operatorów logicznych pozwoli na sprawne pisanie kodu w dalszej części tego z kursu. Z tego powodu warto rozwiązać zadania zamieszczone poniżej, aby przećwiczyć zagadnienie warunków.

Zadania

Zadanie 1

Napisz program od użytkownika, który wczyta od użytkownika liczbę i wyświetli czy liczba znajduje się w zakresie [0, 10] z wyłączeniem wartości 5. Innymi słowy każda liczba z zakresu z wyłączeniem wartości 5.

Zadanie 2

Napisz program od użytkownika, który wczyta od użytkownika dwie liczby, a następnie wypisze większą z nich. Przykładowo dla danych a = 8 i b = 19 program powinien wypisać na ekran 19.

Zadanie 3

Napisz program od użytkownika, który wczyta od użytkownika dwie liczby, a następnie wypisze wynik dzielenia pierwszej liczby przez drugą. Wskazówka: Pamiętaj, że nie wolno dzielić przez 0! Przykładowo dla a = 6 i b = 3 program wypisze 2.