Instrukcje warunkowe

Instrukcja warunkowa służy do podejmowania decyzji w programie w zależności od wyniku (wartości wyniku warunku). Najczęściej spotykanym warunkiem logicznym jest instrukcja if (jeśli)

Składnia:

if (warunek)
instrukcja1
else
instrukcja2;

Instrukcję tę można opisać następująco:

jeśli warunek w nawiasie jest spełniony, wykonaj pojedynczą instrukcję lub sekwencję instrukcji, w przeciwnym wypadku wykonaj pojedynczą instrukcję lub sekwencję.
(instrukcja else jest opcjonalna)

Mogą to być także sekwencje instrukcji (gdy przy spełnionym warunku zachodzi potrzeba wykonania więcej niż jednej instrukcji programu):

if (warunek) 
 {
  Instrukcja1;
  Instrukcja2;
  Instrukcja3;
 }
else
{
  Instrukcja4;
  Instrukcja5;
  Instrukcja6;
}

Instrukcja warunkowa if może także sprawdzać wiele warunków. W tym przypadku należy wykorzystywać operatory logiczne | | (lub) i && (i). Pełną listę operatorów znajdziesz w podrozdziale Operatory.

Popularne operatory wraz z opisem.

( ) Nawias grupujący
. Dostęp do składowych obiektu
[ ] Indeksowanie np. tablicy
! negacja „nie”
& pobranie adresu
> < >= <= Relacje: większe, mniejsze, większe bądź równe i mniejsze bądź równe
= = i != Czy równe bądź czy nie równe
| & ^ Bitowe operatory logiczne
|| i && operatory logicznej alternatywy (lub) i koniunkcji (i)

Oto przykład instrukcji if kontrolującej dwa warunki:

if ((warunek1) operator_logiczny (warunek2))
 Instrukcja;

Przykład: Aby sprawdzić, czy użytkownik jest ma więcej niż 18 lat ale nie więcej niż 20 można posłużyć się następującym zapisem:

If ((wiek > 18) && (wiek < 20)) 
 Console.WriteLine(”Wiek mieści się w zakresie 18-20 lat.”);
else
 Console.WriteLine(”Wiek poza zakresem 18-20 lat.”);

Przykład: Zadaj użytkownikowi pytanie o jego wiek. Sprawdź czy użytkownik jest pełnoletni porównując zmienną wiek z liczbą 18 oznaczającą pełnoletność.

    static void Main(string[] args)
        {
            Console.Clear();
            Console.Write("Podaj swój wiek: ");
            int wiek = Convert.ToInt32(Console.ReadLine());

            if (wiek < 18)
            {
                Console.WriteLine("Nie jesteś pełnoletni.");
                Console.WriteLine("Nie masz jeszcze 18 lat!");
            }
            else
            Console.WriteLine("Jesteś pełnoletni.");
            Console.ReadKey();
        }

Uruchom program i sprawdź jak działa. Proszę zwrócić uwagę na linię int wiek=Convert.ToInt32(Console.ReadLine()); Wykorzystana została konwersja typu ze zmiennej znakowej String na zmienną numeryczną int. Gdyby tę linię zastąpić int wiek=Console.ReadLine(); to zamiast wartości liczbowej podanej z klawiatury otrzymalibyśmy wartość tekstową i kompilator wyświetlił by błąd Nie można niejawnie przekonwertować typu „string” na „int”. W przypadku problemów z uruchomieniem proszę zwrócić uwagę na fakt, że C# rozpoznaje wielkość liter, stąd np. WriteLine i writeLine są dla interpretera całkowicie różne.

Sprobójmy wykonać nieco inny przykład dla zaprezentowania instrukcji warunkowej if. Tym razem zajmiemy się prostym porównywaniem liczb. Po utworzeniu nowego projektu Console Application, wprowadź poniższy kod do sekcji Main. Zmienne x i y odpowiednio przypisane deklarują nam zachowanie naszej pętli. W zależności od przyjętych wartości zmiennych x i y otrzymamy stosowny komunikat wyniku, informujący o wykonanym działaniu arytmetycznym.

 static void Main(string[] args)
        {
            int x = 1;
            int y = 3;
            if (x > y)
            {
                System.Console.WriteLine("x jest wieksze od y");
            }
            else if (x + 2 > y)
            {
                System.Console.WriteLine("Otrzymujemy wynik, gdzie:");
                System.Console.WriteLine("x nie jest wieksze od y");
                System.Console.WriteLine("ale spelnia warunek");
            }
            else
            {
         System.Console.WriteLine("Przeciwnie do pierwszego założenia,");
         System.Console.WriteLine("gdzie x jest wieksze od y");
         System.Console.WriteLine("i nie spełniający nierównosci z drugiego założenia");
            }
            Console.ReadKey(); // oczekiwanie na wciśnięcie dowolnego klawisza 
        }

Wynikiem działania programu o podanych parametrach będzie wyświetlenie komunikatów:

Przeciwnie do pierwszego założenia,
gdzie x jest większe od y
i nie spełniający nierównosci z drugiego założeenia

Warunki są jednym z podstawowych i ważnych aspektów programowania niezależnie od języka. Warto więc poświęcić kilka chwil, by sprawnie posługiwać się nimi w przyszłości.

Pętla while 

Pętle również zaliczamy do instrukcji warunkowych, ponieważ blok instrukcji zawarty w pętli wykonuje się dotąd, aż zostanie spełniony pewnien warunek.

Pętla while jest jedną z instukcji, które są powszechnie stosowane w wielu językach programowania. Ogólna  zasada tej instrukcji polega na wykonywaniu określonej instrukcji lub bloku kodu zawartego popmiędzy nawiasami klamrowymi popóty, dopóki nie zostanie spełniony określony na początku warunek. Warunek ten koniecznie musi zwracać wartość logiczną.

Pętla While wykonuje się do momentu otrzymania nierówności gdzie x jest mniejsze od 3, przy czym, zmienna x jest z każdym okresem pętli inkrementowana x++ i jeden. Wartością początkową jest wartość równa zero.

while(warunek)
{
…instrukcje ;
}

Przykład: Wyświetl wartośc zmiennej licznik dopóty, dopóki zmienna licznik jest mniejsza bądź równa 5.

int licznik = 1;              
            while (licznik <= 5)
	       {
                Console.WriteLine(licznik);
                licznik++;
                }
Console.ReadKey();

356total visits,1visits today

Tagi , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

9 + = 10

This site uses Akismet to reduce spam. Learn how your comment data is processed.