Zamknij komunikat

Nowy Office 2013
Do góry Skomentuj

11. Wartości logiczne

11. Wartości logiczne

Daniel Celeda
7 marca 2006
86 572
Odsłony
Daniel Celeda
7 marca 2006
86 572
Odsłony

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.

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();
      }
}

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();
      }
}

Zobacz również

Komentarze

ostatni przyklad troszeczke nieczytelnie napisany :)
kostii, 11 sierpnia 2006, 14:24
oj chodzi o 2 strone przyklad z wyborem opcji czy imnie czy wiek "/n1)" np
kostii, 11 sierpnia 2006, 14:26
wszystko swietnie miejmy nadzieej ze dzieki temu zalicze
xylo , 29 sierpnia 2006, 17:27
kostii doczytaj poprzednie rozdziały, było wytłumaczone co znaczy "\n" w metodzie WriteLine
kajtuś, 18 września 2006, 20:10
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
tomaskwiat, 23 lipca 2007, 22:12
Kurs Super Pozdro dla autora. Co do ćwiczenia udało mi się zrobić to chyba 5 czy 4
Mafia, 10 lutego 2008, 01:35
Dziekuje za kurs i możliwość nauki C#

Powell, 17 września 2009, 20:17
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">    [size= x-small">string x; string y; string dzialanie; double wynik;[/size"> [size= x-small">...[/size">
kuba, 2 grudnia 2009, 11:39
A nie ma w C# uogólnionej instrukcji warunkowej, coś jak Case w Pascalu? Jesli tak, przydałoby się o tym wspomnieć Ogólnie dobry kurs, pozdro
Johnson, 3 kwietnia 2011, 08:45
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
raf, 25 grudnia 2011, 10:32
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 :)
Artur, 13 stycznia 2012, 12:14
Przegięliście z tym przypinaniem do paska
Wojtek, 28 lipca 2012, 12:31
Super kurs :D
Dominik, 28 listopada 2012, 19:34

Dodaj swój komentarz

Zasady publikacji komentarzyZasady publikacji komentarzy

Redakcja CentrumXP.pl nie odpowiada za treść komentarzy publikowanych na stronach Portalu
i zastrzega sobie prawo do usuwania wypowiedzi, które:

  • zawierają słowa wulgarne, obraźliwe, prowokujące i inne naruszające dobre obyczaje;
  • są jedynie próbami reklamowania stron internetowych (spamowanie poprzez umieszczanie linków);
  • przyczyniają się do złamania prawa bądź warunków licencyjnych oprogramowania (cracki, seriale, torrenty itp.);
  • zawierają dane osobowe, teleadresowe, adresy mailowe lub numery GG;
  • merytorycznie nie wnoszą nic do dyskusji lub nie mają związku z tematem komentowanego newsa, artykułu bądź pliku.