background image

Instrukcje warunkowe w C#

Opracował dr Robert Fidytek

background image

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).

background image

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.

background image

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

background image

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:

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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?


Document Outline