11. Wartości logiczne

11. Wartości logiczne

 Daniel Celeda
Daniel Celeda
00:00
07.03.2006
13 komentarze
87045 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

Komentarze

  • kostii 14:24 11.08.2006

    ostatni przyklad troszeczke nieczytelnie napisany :)

  • kostii 14:26 11.08.2006

    oj chodzi o 2 strone przyklad z wyborem opcji czy imnie czy wiek "/n1)" np

  • xylo 17:27 29.08.2006

    wszystko swietnie miejmy nadzieej ze dzieki temu zalicze

  • kajtuś 20:10 18.09.2006

    kostii doczytaj poprzednie rozdziały, było wytłumaczone co znaczy "\n" w metodzie WriteLine

  • tomaskwiat 22:12 23.07.2007

    Na koniec kalkulatora wypadałoby dać instrukcję else np: else { System.Console.WriteLine("Niestety kolego takiego wyboru nie mogłeś dokonać"); } co nie pozwoliloby na pojawienie sie bledu mimo podania zlego dzialania Pozdro !! Kursik super

  • Mafia 01:35 10.02.2008

    Kurs Super Pozdro dla autora. Co do ćwiczenia udało mi się zrobić to chyba 5 czy 4

  • Powell 20:17 17.09.2009

    <p>Dziekuje za kurs i możliwość nauki C#</p>

  • kuba 11:39 02.12.2009

    Witam. Czy zmiennej double "wynik" musi być na wejściu nadana wartość 0? Ja w swoim programie tego nie zrobiłem i nie ma różnicy w działaniu:     [size= x-small]<font size="2">  </font>[/size]  [size= x-small]string x; string y; string dzialanie; double wynik;[/size] [size= x-small]...[/size]

  • Johnson 08:45 03.04.2011

    A nie ma w C# uogólnionej instrukcji warunkowej, coś jak Case w Pascalu? Jesli tak, przydałoby się o tym wspomnieć [img]../tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif[/img] Ogólnie dobry kurs, pozdro

  • raf 10:32 25.12.2011

    Byłbym wdzięczny za więcej ćwiczeń i przykładów z odmiennymi sposobami rozwiązań. Ale kurs dla takich zielonych jak ja, jest bardzo ok

  • Artur 12:14 13.01.2012

    A gdyby do każdego if"a dołożyć instrukcję else zawierającą System.Console. WriteLine("Nieprawidłowe działanie!"); i te instrukcje warunkowe powkładać w siebie jedna w drugą to można jeszcze zapobiec wybraniu nie poprawnego działania, czy tak?..Ja też dopiero zaczynam :)

  • Wojtek 12:31 28.07.2012

    Przegięliście z tym przypinaniem do paska

  • Dominik 19:34 28.11.2012

    Super kurs :D

Skomentuj

Autor