Myślę, że jeśli już mówione jest o decyzjach w programie i wspomina Pan o instrukcji warunkowej if, to także warto by było poinformować o innych sposobach zrobienia tego samego, taka parafraza. Instrukcja switch jest wytłumaczona w #6 odcinku, lecz nie o to mi chodzi. Sądzę, że wyrażenie warunkowe już w tym momencie mogłoby się spodobać początkującemu programiście oraz pomóc. Pomoc w postaci takiej, że uczeń zaoszczędzi sobie pisania i gubienia się we własnych klamrach (chodzi oczywiście o proste warunki i instrukcje, wiem, że wyrażenie warunkowe nie zastąpi if'a).
Przykład pierwszego programu z odcinka przy użyciu tematu mojej wypowiedzi:
#include <iostream>
using namespace std;
int main()
{
string PIN;
cout << "Witaj w naszym banku!" << endl;
cout << "Podaj numer PIN: ";
cin >> PIN;
cout << ((PIN=="1729")? "Poprawny PIN" : "Niepoprawny PIN");
return 0;
}
Drugi program:
#include <iostream>
using namespace std;
int main()
{
string login, haslo;
cout << "Podaj login: ";
cin >> login;
cout << "Podaj haslo: ";
cin >> haslo;
cout << (((login=="admin")&&(haslo=="szarlotka"))?
"Udalo sie zalogowac!" : "Nie udalo sie zalogowac!" );
return 0;
}
I trzeciego na siłę byśmy mogli zrobić tym sposobem ale to się mija z celem mojej wypowiedzi której ideą jest uproszczenie jak najbardziej tego zagadnienia oraz pokazanie alternatywy dla if'a. Można to sobie porównać z programami z oryginału - widać różnicę.
Dla zainteresowanych którzy nie spotkali się z tym sposobem lub początkujących którzy przybyli z YouTube:
To co wyżej jest napisane to wyrażenie warunkowe, operator. Nie instrukcja. Ten sposób zwraca różne wartości, od string'ów do double'ów.
Przykład:
wynik_wyrazenia = (liczba > 10)? 20 : 40;
wynik_wyrazenia przyjmie wartość 20 jeśli (if) liczba będzie większa od 10, jeśli nie (else) przyjmie wartość 40.
Proste i logiczne jak if'y.
warunek? wartosc_jesli_true : wartosc_jesli_false
Warunku nie trzeba dawać w nawias, lecz on poprawia czytelność kodu.
Można dać kilka warunków jak ja to zrobiłem w drugim przykładzie:
((login=="admin")&&(haslo=="szarlotka"))?
"Udalo sie zalogowac!" : "Nie udalo sie zalogowac!"
Jeśli ktoś dalej nie rozumie odsyłam do Wikipedii i Google
Operator warunkowy - Wikipedia
Obrazek pokazujący działanie: (Źródło: Wikipedia)
To by było chyba na tyle, może na pierwszy rzut oka wydaje się, "A po co mi to jak to jest to samo co ify", ale zaoszczędzi to Ci dużo pisania.
Jeśli ktoś zauważył jakiś błąd, niedopatrzenie, proszę mnie poinformować.