Informatyka dla klas II – instrukcja if

Wyrażenia logiczne

W logice występują jedynie dwie wartości: prawda i fałsz.

W języku C++ zdefiniowane są specjalne stałe do reprezentowania wartości logicznych:

 

prawda = true = 1
fałsz = false = 0

 

// Wartości logiczne 
// (C)2013 mgr Jerzy Wałaszek
// I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    cout << false << endl
         << true  << endl;

    return 0;
}

 

Oczywiście zamiast true można stosować 1, a zamiast false 0 - jednakże posługiwanie się tymi stałymi zwiększa czytelność programu.

Wyrażenie logiczne (ang. logical expresion) jest wyrażeniem, które może przyjmować tylko wartości logiczne true lub false. Tego typu wyrażenia powstają z operatorami porównań.

 

Operator Nazwa Przykład
== równe a == 15
!= różne a != b
< mniejsze a < 15
<= mniejsze lub równe b + 5 <= a
> większe a + 15 > c
>= większe lub równe a >= b + c

 

// Operatory porównań
// (C)2013 I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    int a = 4;

    cout << (a == 4) << endl
         << (a == 3) << endl;

    return 0;
}
// Operatory porównań
// (C)2013 I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    int a = 4;

    cout << (a != 4) << endl
         << (a != 3) << endl;

    return 0;
}
// Operatory porównań
// (C)2013 I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    int a = 4;

    cout << (a < 5) << endl
         << (a < 3) << endl;

    return 0;
}
// Operatory porównań
// (C)2013 I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    int a = 4;

    cout << (a >= 5) << endl
         << (a >= 3) << endl;

    return 0;
}

 

Instrukcja warunkowa

Instrukcja warunkowa pozwala wykonywać instrukcje programu w zależności od określonego warunku logicznego. Posiada ona następującą składnię:

 

if(warunek) instrukcja1; else instrukcja2;

 

if - jest słowem kluczowym języka C++ oznaczającym instrukcję warunkową

warunek  - jest wyrażeniem logicznym lub arytmetycznym, które zostaje obliczone przez instrukcję if i którego wartość decyduje o sposobie wykonania następnych instrukcji.

instrukcja1  - jest dowolną instrukcją języka C++, która zostanie wykonana przez program tylko wtedy, gdy warunek będzie miał wartość logiczną true (lub różną od zera). Jeśli warunek ma wartość false (lub zerową), to instrukcja1 zostanie pominięta.

else - słowo kluczowe języka C++, składnik instrukcji warunkowej if.

instrukcja2  - jest dowolną instrukcją języka C++, która zostanie wykonana tylko wtedy, gdy warunek będzie miał wartość false (lub zero).

 

Zwróć uwagę, że zawsze wykonywana jest tylko jedna z instrukcji zawartych w instrukcji warunkowej if. Ta własność pozwala komputerowi działać logicznie, dostosowywać operację do zastanych warunków. To dzięki niej programy są "inteligentne".

 

// Znajdowanie większej z dwóch liczb
// (C)2013 I LO w Tarnowie
//-----------------------------------

#include <iostream>

using namespace std;

int main()
{
    int a,b;

    cin >> a >> b;

    if(a > b) cout << a;
    else      cout << b;

    cout << endl;    

    return 0;
}
// Badanie znaku liczby
// (C)2013 I LO w Tarnowie
//------------------------

#include <iostream>

using namespace std;

int main()
{
    int a;

    cin >> a;

    if(a > 0)        cout << "DODATNIA\n";
    else if (a == 0) cout << "ZERO\n";
         else        cout << "UJEMNA\n";
 
   return 0;
}

 

Często zdarza się tak, iż w instrukcji warunkowej potrzebna nam jest tylko instrukcja1. W takim przypadku fragment z else można pominąć.

 

if(warunek) instrukcja;

 

instrukcja jest wykonywana tylko wtedy, gdy warunek  jest prawdziwy. Gdy warunek  ma wartość false, to instrukcja zostaje pominięta.

 

// Obliczanie wartości bezwzględnej
// (C)2013 I LO w Tarnowie
//---------------------------------

#include <iostream>

using namespace std;

int main()
{
    int a;

    cin >> a;

    if(a < 0) a = -a;

    cout << a << endl;    

    return 0;
}
// Wyszukiwanie największej liczby z trzech
// (C)2013 I LO w Tarnowie
//-----------------------------------------

#include <iostream>

using namespace std;

int main()
{
    int a,b,c,x;

    cin >> a >> b >> c;

    x = a;

    if(b > x) x = b;

    if(c > x) x = c;

    cout << x << endl;
    
    return 0;
}

 

Jeśli w ramach instrukcji warunkowej if chcemy wykonać nie pojedynczą instrukcję ale kilka instrukcji, to stosujemy tzw. instrukcję blokową - dowolny ciąg instrukcji ujęty w klamerki. Po klamerkach nie musimy już wstawiać średników:

 

if(warunek)
{
    ciąg instrukcji wykonywany, gdy warunek  ma wartość true
}
else
{
    ciąg instrukcji wykonywanych, gdy warunek  ma wartość false
}

 

// Porządkowanie dwóch liczb
// (C)2013 I LO w Tarnowie
//--------------------------

#include <iostream>

using namespace std;

int main()
{
    int a,b,x;

    cin >> a >> b;
    if(a > b)
    {
      x = a;
      a = b;
      b = x;
    }
    cout << a << " " << b << endl;    

    return 0;
}

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe