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.

Anime lány C++ feltételek gyakorlása közben, színes if-else ágakkal a monitoron


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 if elágazások,

  • mikor kell else vagy else 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:

C++ feltételek példája – páros szám ellenőrzése if szerkezettel.

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:

 

C++ feltételek – if és else szerkezet páros és páratlan szám ellenőrzésére.

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.

C++ feltételek – else if szerkezet pontszám alapján jegyet ad

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. 

Anime lány örül, hogy végzett a leckével – vidám jelenet színes pulcsiban, konfettivel, modern szobában | c++ változók

Ha szeretnél továbbhaladni a C++ anyagban, itt válogathatsz a leckék között: