Instrukcje warunkowe w C#
Opracował dr Robert Fidytek
2
==
//równe
!=
//różne
>
//większe
<
//mniejsze
>=
//większy lub równy
<=
//mniejszy lub równy
Operatory relacji
Operatory relacji służą do porównania dwóch zmiennych i
zawsze dają wynik true (prawda) lub false (fałsz).
3
if
(warunek)
{
instrukcja_1;
instrukcja_2;
...
instrukcja_n;
}
lub
if
(warunek)
jedna_instrukcja;
Instrukcja warunkowa if
Instrukcja warunkowa if umożliwia określenie jakie instrukcje
mają zostać wykonane po spełnieniu warunku logicznego.
4
static
void
Main(
string
[] args)
{
int
a = 8, b = 8;
if
(a == b)
{
Console
.WriteLine(
"Liczby a i b są równe"
);
}
Console
.ReadKey(
true
);
//pauza
}
Przykład 1: porównanie liczb
5
if
(warunek)
{
instrukcja_1a;
instrukcja_2a;
...
instrukcja_na;
}
else
{
instrukcja_1b;
instrukcja_2b;
...
instrukcja_nb;
}
Instrukcja warunkowa if
Możemy również określić jakie instrukcje mają zostać wykonane
gdy warunek nie zostanie spełniony, robimy to w taki sposób:
6
static
void
Main(
string
[] args)
{
int
a = 8, b = 888;
if
(a == b)
{
Console
.WriteLine(
"Liczby a i b są równe"
);
}
else
{
Console
.WriteLine(
"Liczby a i b są różne"
);
}
Console
.ReadKey(
true
);
//pauza
}
Przykład 2: porównanie liczb
7
Operatory logiczne służą do łączenia wyrażeń relacji.
&&
//iloczyn warunków (operator "i")
||
//suma warunków (operator "lub")
!
//negacja warunku
Przykładowe warunki złożone:
(liczba>=10)
&&
(liczba<=15)
(liczba==10)
||
(liczba==15)
!
(zmienna_logiczna)
Operatory logiczne
8
static
void
Main(
string
[] args)
{
int
a;
Console
.Write(
"Podaj liczbę: "
);
a =
int
.Parse(
Console
.ReadLine());
if
(
(a >= 10) && (a <= 15)
)
{
Console
.WriteLine(
"Liczba należy do przedziału <10,15>"
);
}
else
{
Console
.WriteLine(
"Liczba leży poza przedziałem <10,15>"
);
}
Console
.ReadKey(
true
);
//pauza
}
Złożone instrukcje warunkowe if
9
Rok przestępny to taki, który ma 366 zamiast 365 dni.
Obecnie stosuje się formułę zgodną z kalendarzem Gregoriańskim
wprowadzonym w 1582 roku przez papieża Grzegorza XIII, w którym
rok przestępny spełnia jeden z następujących warunków:
* jest podzielny przez 4, ale nie jest podzielny przez 100
* jest podzielny przez 400
Błąd kalendarza Gregoriańskiego wynosi średnio 0.000301 dnia na
rok. Co daje około 1 dnia na 3322 lat.
Przykład: rok przestępny
10
static
void
Main(
string
[] args)
{
int
rok;
Console
.Write(
"Podaj rok: "
);
rok =
int
.Parse(
Console
.ReadLine());
if
(
(rok % 4 == 0 && rok % 100 != 0)
||
rok % 400 == 0
)
{
Console
.WriteLine(
"Rok {0} jest przestępny"
,rok);
}
else
{
Console
.WriteLine(
"Rok {0} nie jest przestępny"
, rok);
}
Console
.ReadKey(
true
);
//pauza
}
Przykład: rok przestępny
11
static
void
Main(
string
[] args)
{
int
ocena = 4;
if
(ocena >= 2 && ocena <= 5)
{
if
(ocena == 2)
Console
.WriteLine(
"Nie zdałeś"
);
else
Console
.WriteLine(
"Zdałeś"
);
}
else
Console
.WriteLine(
"Nie ma takiej oceny"
);
Console
.ReadKey(
true
);
//pauza
}
Zagnieżdżanie instrukcji warunkowych
12
Operator warunkowy służy do zwracania jednej z dwóch wartości
zależnie od wartości warunku. Składnia:
warunek
?
wyrażenie_1
:
wyrażenie_2
;
gdzie:
warunek - wyrażenie dające wynik typu bool
wyrażenie_1 - zwracana wartość, gdy warunek jest prawdziwy
wyrażenie_2 - zwracana wartość, gdy warunek jest fałszywy
Przykład:
double
a = 2, b = 2, c;
c =
(b != 0)
?
a / b
:
0
;
//c=1
//Porównaj z instrukcją warunkową:
if
(b != 0) { c = a / b; }
else
{ c = 0; }
Operator wyrażenia warunkowego
13
static
void
Main(
string
[] args)
{
int
dzień;
Console
.Write(
"Podaj numer dnia tygodnia: "
);
dzień =
int
.Parse(
Console
.ReadLine());
if
(dzień == 1)
Console
.WriteLine(
"poniedziałek"
);
else
if
(dzień == 2)
Console
.WriteLine(
"wtorek"
);
else
if
(dzień == 3)
Console
.WriteLine(
"środa"
);
else
if
(dzień == 4)
Console
.WriteLine(
"czwartek"
);
else
if
(dzień == 5)
Console
.WriteLine(
"piątek"
);
else
if
(dzień == 6)
Console
.WriteLine(
"sobota"
);
else
if
(dzień == 7)
Console
.WriteLine(
"niedziela"
);
else
Console
.WriteLine(
"niewłaściwy numer dnia tygodnia"
);
Console
.ReadKey(
true
);
//pauza
}
Kaskadowe łączenie instrukcji
warunkowych
14
static
void
Main(
string
[] args)
{
int
wiek = 11;
if
(wiek >= 18);
Console
.WriteLine(
"Wypiję piwko"
);
Console
.WriteLine(
"Zjem pączka"
);
Console
.ReadKey(
true
);
}
Co zostanie wyświetlone na ekranie?