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