c++ alapok
C++ feltételek
A programozás egyik legizgalmasabb pillanata az, amikor a kódod végre gondolkodni kezd. Tud dönteni. Tud választani. Tud reagálni arra, amit a felhasználó (vagy éppen a világ) elé tesz. És pontosan ezt hozzák el nekünk a C++ feltételek: az if, az else, az else if és a logikai kifejezések.
Eddig már simán ment a számolás, változózás, műveletezés — de most lépünk át arra a szintre, ahol a programod elkezd valódi „intelligenciát” mutatni.
Igen, itt kezdődik az, amikor a kód „ha ez történik → akkor azt csináld” módba kapcsol.
Képzeld el úgy, mintha a programod kapna egy saját mini döntéshozó központot:
-
ha a felhasználó túl fiatal → „sorry, még nem vezethetsz”,
-
ha a szám pozitív → „minden oké, gyerünk tovább”,
-
ha az ugrás hosszabb, mint 8 méter → „wooow, díjazás jár!”.
A feltételek azok a kapuk, amelyek eldöntik, melyik irányba megy tovább a kódod — és hidd el, programozóként ezt az eszközt fogod a legtöbbször használni. Minden játék, minden alkalmazás, minden algoritmus tele van döntésekkel.
Ebben a leckében szépen, lépésről lépésre megnézzük:
-
hogyan működnek az
ifelágazások, -
mikor kell
elsevagyelse if, -
hogyan írj tökéletes logikai kifejezéseket,
-
milyen tipikus hibákat érdemes elkerülni,
-
és hogyan gondolkodik valójában a számítógép egy feltétel kiértékelésekor.
Lesznek könnyű és instant megérthető példák, plusz néhány olyan mini feladat is, amitől érzed majd: „Oké… most már tényleg értem.”
A végére simán megoldod majd a nagyobb projektes feladatokat is (távolugrás, síugrás, lakásfeladat), hiszen azok tele vannak feltételes szerkezetekkel.
Na, csapjunk bele, mert ez az a rész, ahol a C++ elkezd igazán élőnek tűnni!
Mi az a feltétel a C++-ban?
A feltétel (condition) tulajdonképpen egy kérdés, amit a program feltesz magának:
„Igaz ez… vagy hamis?”
Nincs harmadik opció.
A C++ itt nagyon „kocka módon” gondolkodik: vagy true, vagy false.
És attól függően, melyik a válasz, a program különböző „utakon” halad tovább. Ez olyan, mintha a kód egy kereszteződéshez érne:
-
Ha a feltétel igaz → akkor végrehajtja az adott utasítást.
-
Ha a feltétel hamis → akkor átugorja, vagy egy másik ágba lép.
Ezért hívjuk elágazásnak is.
A feltételt a legegyszerűbben az if kulcsszóval írjuk le.
Így kommunikálsz a géppel:
if (feltétel) {
//ezt csináld, ha igaz
}
A kis zárójelen belüli rész a lényeg – itt döntöd el, hogy milyen szabály alapján lépjen tovább a program. Például:
-
a > b→ nagyobb-e az egyik szám a másiknál? -
kor >= 18→ elmúlt-e a felhasználó 18 éves? -
pont >= 50→ sikerült-e a vizsga? -
ugras >= 8→ jár-e nagyobb díjazás a versenyzőnek?
Ha a feltétel igaz, a program belép a kapun. Ha hamis, fapofával sétál tovább a következő lehetőség felé. Nézzünk rá egy példát:
Az if szuper, amikor valamit csak akkor szeretnél lefuttatni, ha egy feltétel igaz. De mi van akkor, ha azt is szeretnéd megmondani a programnak, mi történjen, ha a feltétel hamis?
Na erre van az else.
Az else az a „különben” ág:
ha az if nem teljesül → az else fut le.
Ennyi. Tiszta sor.
💡 Úgy képzeld el, mint két út közötti kapcsolót:
-
if → ha páros a szám
-
else → ha NEM páros, tehát páratlan
Nincs másik opció. A szám vagy páros vagy páratlan, tehát az else mindig elkapja a fennmaradó esetet.
Nézzük egy szép, tiszta példával:
Else if
Az if és az else két helyzetet tudott megkülönböztetni: ha igaz -> ezt csináld, ha nem igaz > azt csináld.
De a valóságban kevés dolog fekete-fehér. Többnyire nem két, hanem több lehetséges eset is van. Itt lép a képbe az else if.
Az else if-nél a program tovább kérdez:
➡️ „Ha az első feltétel nem igaz, akkor nézzük meg ezt a másikat!”
➡️ „Ha ez se igaz, akkor még mindig van egy következő lehetőség…”
Így szépen, sorban, logikusan vizsgálja végig a különböző feltételeket.
Miért kell a kapcsos zárójel az if után?
Ha ezt írod neki:
if (feltétel)
utasítás1;
utasítás2;
akkor ő ezt így érti:
utasítás1 -> az if-hez tartozik
utasítás2 -> nem tartozik az if-hez, mindig lefut. A {} zárójelek nélkül az if CSAK EGY UTASÍTÁST fogad be. Amit beteszem a kapcsos zárójel közé, az egy utasításnak felel meg.
Példa:
if (szam > 0) std::cout << „Pozitiv szam” << std::endl;
Tehát, ha a szám nagyobb mint , akor futtasd le, hogy írja ki ez egy pozitív szám
Csakhogy ha hozzáírom még ezt a sort:
if (szam > 0) std::cout << „Pozitiv szam” << std::endl;
std::cout << „A szam nagyobb mint nulla” << std::endl;
Csak az első sor van hozzákötve az if-hez, a másodikat mindig lefuttatja. Így lesz helyes:
if (szam > 0) {
std::cout << „Pozitiv szam” << std::endl;
std::cout << „A szam nagyobb mint nulla” << std::endl; }
így mind a két sor ugyanahhoz az if-hez tartozik.
Beágyazott if-ek (nested if) – amikor egy döntésen belül újabb döntést hozunk
Előfordul, hogy egy feltétel csak akkor vizsgálható, ha egy másik már teljesült. Ilyenkor jönnek képbe a beágyazott if-ek. Ez olyan, mintha a program azt mondaná:
1. Nézzük meg az A-t
2. Ha A igaz, akkor vizsgáljuk meg a B-t is. Vagyis kétlépcsős döntést kell hozni.
Példa: a megadott szám pozitív és páros-e?
if (szam > 0) {
if (szam % 2 == 0) {
std::cout << „A szam pozitív és páros” << std::endl; }
else {
std::cout << ” A szam pozitív, de páratlan” << std::endl; }
else {
std::cout <<„A szam nem pozitív.” << std::endl;
}
Három lehetséges kimenet van:
- pozitív és páros
- pozitív és páratlan
- negatív vagy nulla
Akkor érdemes beágyazott if-et használni, ha a második feltétel csak akkor értelmezhető, ha az első igaz. Például: ha a felhasználó be van jelentkezve, akkor ellenőrizzük, hogy adminisztrátor-e.
Ha nem kell beágyazni, a két feltétel egyszerre kell, hogy igaz legyen, akkor egyszerűbb így:
if (szam > 0 && szam % 2 == 0) {
std::cout << „A szám pozitív és páros” << std::endl; }
Csak akkor használunk beágyazott if-et, ha a vizsgálatoknak van egy sorrendje. Ha csak kombinálni akarod a feltételeket, akkor sokkal egyszerűbb a logikai operátor.






