logical operator (tsz. logical operators)
A logikai operátorok olyan műveletek, amelyek logikai kifejezéseket hasonlítanak össze és egy logikai (bool) értéket adnak vissza: true (igaz) vagy false (hamis). Ezeket gyakran használjuk feltételekben (pl. if-else szerkezetekben, ciklusokban).
Operátor | Neve | Leírás |
---|---|---|
&&
|
Logikai ÉS (AND) | Igaz, ha mindkét operandus igaz. |
||
|
Logikai VAGY (OR) | Igaz, ha legalább egy operandus igaz. |
!
|
Logikai NEM (NOT) | Igaz értéket hamissá alakít és fordítva. |
&&
)Az &&
akkor igaz, ha mindkét feltétel igaz.
#include <iostream>
using namespace std;
int main() {
int age = 20;
bool hasID = true;
if (age >= 18 && hasID) {
cout << "Beléphetsz a klubba!" << endl;
} else {
cout << "Nem léphetsz be!" << endl;
}
return 0;
}
Kimenet:
Beléphetsz a klubba!
📌 Magyarázat:
- Ha az age >= 18 ÉS van személyi igazolvány (hasID == true), akkor beléphet.
- Ha bármelyik feltétel hamis, a program “Nem léphetsz be!” üzenetet ír ki.
||
)A ||
akkor igaz, ha legalább az egyik feltétel igaz.
int temperature = 35;
bool isRaining = false;
if (temperature > 30 || isRaining) {
cout << "Maradj bent!" << endl;
} else {
cout << "Kimehetsz a szabadba!" << endl;
}
Kimenet:
Maradj bent!
📌 Magyarázat:
- Ha a hőmérséklet 30 fok felett van, vagy esik az eső, akkor maradj bent.
- Ha egyik sem igaz, akkor kimehetsz.
!
)A !
egy logikai kifejezés ellentettjét adja vissza.
bool isSunny = false;
if (!isSunny) {
cout << "Felhős az idő!" << endl;
}
Kimenet:
Felhős az idő!
📌 Magyarázat:
- !isSunny
megfordítja az isSunny
értékét (false → true
), így a feltétel igaz lesz.
A logikai operátorokat összekapcsolhatjuk bonyolultabb feltételek létrehozásához.
int age = 25;
bool hasTicket = true;
bool isVIP = false;
if ((age >= 18 && hasTicket) || isVIP) {
cout << "Beléphetsz az eseményre!" << endl;
} else {
cout << "Nem léphetsz be!" << endl;
}
Kimenet:
Beléphetsz az eseményre!
📌 Magyarázat:
- Az eseményre beléphetsz, ha
- (age >= 18 && hasTicket) vagy
- VIP vagy
bool isWeekend = true;
if (!isWeekend) {
cout << "Dolgozni kell!" << endl;
} else {
cout << "Pihenhetsz!" << endl;
}
Kimenet:
Pihenhetsz!
📌 Magyarázat:
- Ha isWeekend == false
, akkor a program azt írná ki, hogy “Dolgozni kell!”
- Ha isWeekend == true
, akkor “Pihenhetsz!”
while
ciklus logikai operátorokkalint number;
cout << "Adj meg egy 1 és 10 közötti számot: ";
cin >> number;
while (number < 1 || number > 10) {
cout << "Érvénytelen szám, próbáld újra: ";
cin >> number;
}
cout << "Elfogadott szám: " << number << endl;
📌 Magyarázat:
- A ciklus addig fut, amíg a szám nem 1 és 10 közé esik.
for
ciklus logikai ÉS (&&
) használatávalfor (int i = 1; i <= 20; i++) {
if (i % 2 == 0 && i % 3 == 0) {
cout << i << " osztható 2-vel és 3-mal." << endl;
}
}
📌 Magyarázat:
- Csak azok a számok kerülnek kiírásra, amelyek 2-vel és 3-mal is oszthatók.
✔ A logikai operátorok bool típusú (igaz/hamis) eredményt adnak vissza.
✔ Feltételek, ciklusok és döntéshozatal során használatosak.
✔ Gyakran kombinálhatók egymással:
- &&
(ÉS) – Mindkét feltétel igaz kell legyen
- ||
(VAGY) – Legalább egy feltétel igaz
- !
(NEM) – A logikai érték negálása