11. Wartości logiczne

11. Wartości logiczne

 Daniel Celeda
Daniel Celeda
00:00
07.03.2006
88556 wyświetleń

Wartości logiczne to „prawda”(true) oraz „fałsz”(false). Zmienne, które mogą przechowywać takie wartości są typu „bool”. Wartości logiczne są wynikami operacji logicznych. '[
„true” określa, że jakieś wyrażenie jest prawdziwe, natomiast „false” że nieprawdziwe.
Załóżmy, że mamy zmienna „x” typu „int”. Wyrażeniem logicznym będzie przyrównanie tej zmiennej do jakiejś liczby.
Np. czy „x” wynosi 2? Jeśli tak to wynikiem będzie „true”, jeśli nie „false”.
Znamy już operator „=”, służący do przypisywania wartości zmiennym. Istnieje bardzo podobny operator „==”. Niedoświadczeni programiści często mylą obydwa operatory, co powoduje wiele błędów w programach.
Poniższy fragment programu przypisuje do zmiennej „x” wartość 2.

int x;
x = 2;

Natomiast następny fragment przyrównuje zmienną “x” do 2.

bool czyRowneDwa;
czyRowneDwa = x == 2;

Napiszmy krótki program z wykorzystaniem zdobytej wiedzy. Dla poprawy czytelności wstawmy nawiasy obejmujące wyrażenie przyrównania. Nawiasy okrągłe, tak jak w matematyce, wymuszają kolejność wykonywania operacji. W tym wypadku wyrażenie logiczne i tak wykonałoby się jako pierwsze, ale warto używać nawiasów jeśli poprawia to czytelność programu.

class KlasaGlowna
{
      static void Main()
      {
            int x = 2;
            bool czyRowneDwa;
            czyRowneDwa = (x == 2);

            System.Console.WriteLine("Czy x jest równe 2? " + czyRowneDwa);
            System.Console.ReadLine();
      }
}

Wynik działania programu mówi nam czy “x” jest równe 2 czy nie.

Wynikiem jest „true”, a więc „x” jest równe 2.

@STRONA@

Instrukcje warunkowe

 Najbardziej znaną instrukcją warunkową jest instrukcja „if ... else”. Służy ona do warunkowego wykonania kodu. Jej składnia wygląda następująco:
„if(wyrażenie logiczne) kod programu”.
Najpierw wykonywane jest „wyrażenie logiczne” zawarte w nawiasach. Jeśli zwraca wartość „true” (warunek jest prawdziwy), to wykonywany jest kod programu znajdujący się za warunkiem. Kodem programu, którego wykonanie zależy od prawdziwości warunku, może być jedna instrukcja bądź większa ich ilość, ujęta w nawiasy klamrowe „{}”.

Czas więc na przykład:

class KlasaGlowna
{
      static void Main()
      {
            int x = 1;
            if(x == 2)
                  System.Console.WriteLine("x jest równe 2");
            System.Console.ReadLine();
      }
}

“x” jest równe 1, więc wyrażenie “x == 2” zwróci nam “false” i metoda „WriteLine()” nie wykona się.

W poniższym programie za instrukcją „if” umieściłem kilka metod. Tak więc mimo, że warunek nadal nie będzie prawdziwy, nie wykona się tylko metoda znajdująca się bezpośrednio za „if”.

class KlasaGlowna
{
      static void Main()
      {
            int x = 1;
            if(x == 2)
                  System.Console.WriteLine("x jest równe 2");
            System.Console.WriteLine("Ta metoda zawsze sie wykona.");
            System.Console.ReadLine();
      }
}

Jeśli chcielibyśmy, aby wykonanie większej ilości instrukcji zależało od warunku logicznego, to musimy ująć je w nawiasy klamrowe.

class KlasaGlowna
{
      static void Main()
      {
            int x = 1;
            if(x == 2)
            {
                  System.Console.WriteLine("x jest równe 2");
                  System.Console.WriteLine("Wykonanie tej metody jest zależne od prawdziwości warunku.");
            }
            System.Console.ReadLine();
      }
}

Zmieńmy nasz program tak aby warunek był prawdziwy.

class KlasaGlowna
{
      static void Main()
      {
            int x = 2;
            if(x == 2)
            {
                  System.Console.WriteLine("x jest równe 2");
                  System.Console.WriteLine("Wykonanie tej metody jest zależne od prawdziwości warunku.");
            }
            System.Console.ReadLine();
      }
}

@STRONA@

Praktyczne wykorzystanie instrukcji warunkowych.

Za pomocą instrukcji „if” możemy stworzyć prosty interfejs użytkownika, za pomocą którego program będzie komunikował się z użytkownikami.

class KlasaGlowna
{
      static void Main()
      {
            string x;

            System.Console.WriteLine("Wybierz jedną z opcji:\n1) Wprowadzenie imienia i nazwiska.\n2) Wprowadzenie wieku.");
            x = System.Console.ReadLine();
            if(x == "1")
            {
                  System.Console.WriteLine("Podaj imię i nazwisko.");
                  System.Console.Read();
            }
            if(x == "2")
            {
                  System.Console.WriteLine("Podaj wiek.");
                  System.Console.Read();
            }
      }
}

Najpierw program wypisuje możliwe opcje i prosi o wybranie jednej z nich. Użytkownik wprowadza tekst i potwierdza klawiszem „Enter”. Następnie dwie instrukcje warunkowe „if” sprawdzają czy wybrano liczbę „1” czy liczbę „2” i w zależności od wyboru wykonują się odpowiednie instrukcje.

Wraz z „if” łączy się słówko „else”. W prostym tłumaczeniu można powiedzieć, że program sprawdza warunek i jeśli jest on prawdziwy to wykonuje się kod pod instrukcją „if”, jeśli nie to wykonuje się kod znajdujący się poniżej słówka „else”.

class KlasaGlowna
{
      static void Main()
      {
            int x = 1;

            if(x == 2)
            {
                  System.Console.WriteLine("x równa się 2");
            }
            else
            {
                  System.Console.WriteLine("x nie równa się 2");
            }
            System.Console.Read();
      }
}

Ćwiczenie

Napisz program działający jak prosty kalkulator. Program będzie prosił o podanie dwóch liczb a następnie o wybranie działania. Na koniec wyświetlany będzie wynik.

class KlasaGlowna
{
      static void Main()
      {
            string x;
            string y;
            string dzialanie;
            double wynik = 0;
            System.Console.WriteLine("Podaj pierwszą liczbę.");
            x = System.Console.ReadLine();
            System.Console.WriteLine("Podaj drugą liczbę.");
            y = System.Console.ReadLine();
            System.Console.WriteLine("Wybierz działanie: \n1) Mnożenie \n2) Dzielenie \n3) Dodawanie \n4) Odejmowanie");
            dzialanie = System.Console.ReadLine();

            if(dzialanie == "1")
            {
                  wynik = double.Parse(x) * double.Parse(y);
            }
            if(dzialanie == "2")
            {
                  wynik = double.Parse(x) / double.Parse(y);
            }
            if(dzialanie == "3")
            {
                  wynik = double.Parse(x) + double.Parse(y);
            }
            if(dzialanie == "4")
            {
                  wynik = double.Parse(x) - double.Parse(y);
            }

            System.Console.WriteLine("Wynik wynosi: " + wynik);
            System.Console.ReadLine();
      }
}


Spodobał Ci się ten artykuł? Podziel się z innymi!

Źródło:

Polecamy również w kategorii Kurs C#, cz. I