Programowanie
Struktury sterujące
Zazwyczaj instrukcje programu wykonywane są jedna po drugiej w porządku w jakim zostały napisane. Jest to wykonanie sekwencyjne. Język C++ pozwala programiście określić inny sposób wykonania programu
tzn. kolejne wykonane wyrażenie będzie inne niż następne występujące w sekwencji jest to tzw. przekazywanie sterowania. Wszystkie programy mogą być napisane w oparciu o trzy struktury sterujące :
sekwencji, wyboru, powtórzenia. Struktura sekwencji jest wbudowana w C++. Dopóki nie jest powiedziane inaczej instrukcje wykonywane są jedna po drugiej. C++ daje programiście trzy struktury wyboru
:instrukcja if, instrukcja if/else oraz switch. Są również trzy struktury wyboru : while, do/while, for. Daje to nam w sumie siedem struktur sterujących. Słowa te są słowami kluczowymi nie mogą być
one użyte jako identyfikatory, a także dla nazw zmiennych.
Struktura if.
Instrukcja if ma następującą składnię :
if(warunek){
instrukcja;
instrukcja;
instrukcja;
...;
}
Jeśli warunek jest prawdziwy instrukcje wewnątrz nawiasów klamrowych są wykonywane. Jeśli warunek jest fałszywy instrukcje te są pomijane. Jeśli po instrukcji if ma być wykonana tylko
jedna instrukcja można pominąć nawiasy klamrowe np. :
if(ocena>=2)
cout<<"Zdales";
Struktura wyboru if jest stosowana wtedy, gdy chcemy skorzystać z alternatywnych sekwencji wykonania programu. Załóżmy taki warunek:
Jeśli ocena jest równa lub większa niż 3
Wyświetl "Zdałeś"
Jeśli warunek jest prawdziwy (true) wyświetlone zostaje Zdałeś, dopiero potem zostaje wykonane następne wyrażenie w programie. Jeśli natomiast warunek jest fałszywy (false) instrukcja Wyświetl
"Zdałeś" jest pomijana i wykonywane jest kolejna instrukcja. Przełóżmy teraz to, co napisałem na język C++ :
// ocena.cpp - struktura wyboru if.
#include <iostream.h>
int main()
{
int ocena;
cout<<"Wprowadz ocene :\n";
cin>>ocena;
if(ocena>=3){
cout<<" \nZdales\n ";
}
//tutaj mogą następować inne instrukcje programu
return 0;
}
Żeby wszystko było bardziej czytelne w programach nie będę używał znaków z "ogonkami". Poza tym niektóre kompilatory nie pozwalają na ich używanie.
2.1.2. Struktura if/else
Struktura if/else ma następującą składnię :
if(warunek){
instrukcja;
instrukcja;
instrukcja;
...;
}
else{
instrukcja;
instrukcja;
instrukcja;
...;
}
Jeśli warunek jest prawdziwy(true) instrukcje wewnątrz nawiasów klamrowych są wykonywane, jeśli warunek jest fałszywy(false) wykonywane są instrukcje wewnątrz nawiasów klamrowych po instrukcji else
np. :
if(ocena>=3)
cout<<"Zdales";
else
cout<<"Nie zdales";
Jeśli do wykonania jest tylko jedna instrukcja to można pominąć nawiasy klamrowe.W przypadku, gdy warunek będzie prawdziwy tzn. wartość zmiennej ocena będzie równa lub większa od trzech, zostanie
wyświetlony napis "Zdales", a dopiero wówczas zostaną wykonane kolejne instrukcje programu. Jeżeli warunek będzie fałszywy tzn. wartość zmiennej ocena będzie mniejsza od trzech, wyświetlony będzie
napis "Nie zdales", po tym będą wykonywane kolejne instrukcje programu.
Oprócz instrukcji if/else C++ dostarcza operator warunkowy (?:). Jest to jedyny operator trójargumentowy w C++. Pierwszy operand jest warunkiem, drugi jest wartością dla całego wyrażenia warunkowego
jeśli warunek jest prawdziwy, a trzeci jest wartością dla całego wyrażenia jeśli warunek jest fałszywy np. :
cout<<(ocena>=3 ? "Zdales" : " Nie zdales");
Jeśli warunek jest prawdziwy to wyrażenie ewoluuje do wartości "Zdales". W przypadku, gdy warunek jest fałszywy wyrażenie będzie miało wartość "Nie zdales". Nawiasy są potrzebne dla zachowania
właściwej kolejności działań. Zamiast wartości możesz podać działania do wykonania i napisać:
ocena>=3 ? cout<<"Zdales" : cout<<"Nie zdales";