C# programozás kezdőknek › 4. lecke
C# tanfolyam · 4. lecke
Operátorok C#-ban – számolás, összehasonlítás és értékadás
A változóinkban már vannak adatok. Most megtanuljuk, hogyan számoljunk velük, hogyan hasonlítsuk össze őket, és hogyan módosítsuk az értéküket.

A lecke végére
- használod az alapvető aritmetikai operátorokat;
- érted a
%(maradékos osztás) működését; - megkülönbözteted az egész és a tizedes osztást;
- használod az értékadó rövidítéseket;
- összehasonlítasz két értéket;
- megkülönbözteted az
=és a==jelet.
Ehhez már ismerned kell
- az
intés adoubletípusú változókat; - az értékadást;
- az alapvető adatbekérést;
- a
booltípus jelentését.
Mi az operátor?
Nézd meg ezt a programrészletet:
int pont = 10;
int bonusz = 5;
int osszesen = pont + bonusz;A + jel itt megmondja a programnak, milyen műveletet végezzen a két értékkel.
Operátor és operandus
A változók tárolják az adatokat, az operátorok pedig megmondják, mit tegyünk velük. Azokat az értékeket, amelyekkel az operátor dolgozik, operandusoknak nevezzük: a pont + bonusz kifejezésben a + az operátor, a pont és a bonusz az operandus.
Aritmetikai operátorok
Ezek nagyon hasonlítanak a matematikából ismert műveletekre.
| Operátor | Jelentés | Példa |
|---|---|---|
+ | összeadás | 8 + 3 → 11 |
- | kivonás | 8 - 3 → 5 |
* | szorzás | 8 * 3 → 24 |
/ | osztás | 8 / 3 → 2, ha mindkét érték int |
% | maradékos osztás | 8 % 3 → 2 |

Jósolj! Mit ír ki a program?
int a = 12;
int b = 5;
Console.WriteLine(a + b);
Console.WriteLine(a - b);
Console.WriteLine(a * b);Megoldás
17
7
60Az osztás egyik legfontosabb csapdája
Matematikából azt várnánk, hogy 5 : 2 = 2,5. A C#-ban azonban számít, milyen adattípusokkal dolgozunk.
Két egész szám osztása
int a = 5;
int b = 2;
Console.WriteLine(a / b);2
Hová lett a fél?
Ha mindkét operandus int, a C# egész osztást végez: a tört részt egyszerűen levágja. Figyelj: ez nem kerekítés! A 7 / 2 eredménye 3, és nem 4.
Ha legalább az egyik érték double
double a = 5.0;
int b = 2;
Console.WriteLine(a / b);2,5Pont a kódban, vessző a kimenetben
A C# forráskódban a tizedes számot mindig ponttal írjuk: 5.0. Kiíráskor viszont a program a számítógép nyelvi beállítását követi, ezért magyar beállításnál a konzolon vessző jelenik meg: 2,5.
Mit csinál a % operátor?
A százalékjel itt nem százalékszámítást jelent. A % az osztás után megmaradó maradékot adja vissza.
Console.WriteLine(10 % 3);A 10-ben háromszor van meg a 3, és marad 1. Ezért a kimenet: 1.
Próbáld fejben! Mi lesz az eredmény?
8 % 2
9 % 2
15 % 4
20 % 6Megoldás
0
1
3
2A % később nagyon hasznos lesz
Például annak vizsgálatára, hogy egy egész szám páros vagy páratlan: ha egy szám kettővel osztva 0 maradékot ad, akkor páros.
Műveleti sorrend
A C# ugyanúgy figyel a műveletek sorrendjére, mint a matematika: a szorzás és az osztás előbb történik, mint az összeadás és a kivonás.
int eredmeny = 2 + 3 * 4;
Console.WriteLine(eredmeny);Előbb a szorzás történik: 3 · 4 = 12, utána az összeadás: 2 + 12 = 14.
Mit gondolsz? Mi történik zárójellel?
int eredmeny = (2 + 3) * 4;
Console.WriteLine(eredmeny);Megoldás
20A zárójel miatt először a 2 + 3 művelet történik meg.
Ha bizonytalan vagy, használj zárójelet
A zárójel nemcsak az eredményt módosíthatja, hanem a kód olvashatóságát is javítja.
Értékadó operátorok
Ezt már ismered: az = értéket ad a változónak. Ha a pontszámot öt ponttal szeretnénk növelni, ezt írjuk:
int pont = 10;
pont = pont + 5; // hosszabban
pont += 5; // ugyanez rövidebben| Rövid forma | Ugyanez hosszabban |
|---|---|
pont += 5; | pont = pont + 5; |
pont -= 5; | pont = pont - 5; |
pont *= 2; | pont = pont * 2; |
pont /= 2; | pont = pont / 2; (int esetén egész osztás!) |
Eggyel több vagy eggyel kevesebb
pont++; // eggyel növeli
pont--; // eggyel csökkentiTe jössz! Kövesd a változó értékét!
int pont = 10;
pont += 5;
pont++;
pont -= 3;
Console.WriteLine(pont);Megoldás
10 → 15 → 16 → 13, tehát a kimenet: 13.
Összehasonlító operátorok
Eddig számokat kaptunk eredményként. Az összehasonlítás eredménye viszont bool lesz: true vagy false.
int kor = 14;
bool eredmeny = kor > 10;
Console.WriteLine(eredmeny);TrueA program valójában ezt a kérdést vizsgálta:
Nagyobb-e a 14 a 10-nél?
| Operátor | Jelentés | Példa |
|---|---|---|
> | nagyobb | 10 > 5 → True |
< | kisebb | 4 < 2 → False |
>= | nagyobb vagy egyenlő | 12 >= 12 → True |
<= | kisebb vagy egyenlő | 9 <= 8 → False |
== | egyenlő | 7 == 7 → True |
!= | nem egyenlő | 7 != 7 → False |
Jósolj!
Console.WriteLine(10 > 5);
Console.WriteLine(4 < 2);
Console.WriteLine(7 == 7);
Console.WriteLine(7 != 7);Megoldás
True
False
True
False= vagy ==?
Ez az egyik legfontosabb különbség a kezdő C# programozásban.
= értékadás
int kor = 14;Azt mondjuk: a kor változó kapja meg a 14 értéket.
== összehasonlítás
kor == 14Azt kérdezzük: a kor értéke egyenlő 14-gyel? A válasz true vagy false.

Gyakori kezdő hiba
Az = nem azt jelenti, hogy „egyenlő-e”. Összehasonlításhoz két egyenlőségjel kell: ==.
Önálló gyakorlás
1. Számológép
Hozz létre két egész számot, majd írd ki az összegüket, a különbségüket, a szorzatukat, az egész osztás eredményét és az osztás maradékát.
Egy lehetséges megoldás
int a = 17;
int b = 5;
Console.WriteLine(a + b); // 22
Console.WriteLine(a - b); // 12
Console.WriteLine(a * b); // 85
Console.WriteLine(a / b); // 3
Console.WriteLine(a % b); // 22. Tizedes osztás
Írj programot, amely két szám osztását tizedes eredménnyel írja ki. Próbáld ki először két int, majd legalább egy double értékkel!
Tipp
Figyeld meg, milyen adattípusúak az osztásban szereplő értékek.
Egy lehetséges megoldás
int x = 7;
int y = 2;
Console.WriteLine(x / y); // 3
double z = 7.0;
Console.WriteLine(z / y); // 3,53. Pontszám változtatása
Indulj ebből: int pont = 20; Adj hozzá 10-et, növeld eggyel, vonj le belőle 4-et, végül írd ki a végeredményt.
Megoldás
int pont = 20;
pont += 10;
pont++;
pont -= 4;
Console.WriteLine(pont); // 274. Összehasonlító labor
Hozd létre ezeket: int a = 12; és int b = 8; Írasd ki az alábbi kifejezések eredményét! Mielőtt futtatod, minden sorról írd fel a tippedet.
a > b
a < b
a == b
a != b
a >= 12
b <= 8Megoldás
True
False
False
True
True
True5. Páros vagy páratlan – előkészítés
Hozz létre egy egész számot, például int szam = 17;, és írd ki a szam % 2 értékét. Próbáld ki több páros és páratlan számmal. Mit figyelsz meg?
Megfigyelés
Pozitív páros számnál az eredmény 0, pozitív páratlan számnál 1. Ezt használjuk majd a páros–páratlan döntéshez.
6. Hibavadász
Nézd meg ezt a kódot. Mi a probléma?
int kor = 14;
bool tizennegy = kor = 14;Megoldás
Az összehasonlításhoz nem =, hanem == kell: bool tizennegy = kor == 14; A Visual Studio ezt a kódot le sem fordítja, hanem CS0029 hibát jelez (Cannot implicitly convert type 'int' to 'bool'), mert a kor = 14 értékadás eredménye szám, nem logikai érték. Ez szerencse: a C# így időben szól a hibáról.
7. Műveleti sorrend
Először tippeld meg az eredményt!
int eredmeny1 = 5 + 2 * 3;
int eredmeny2 = (5 + 2) * 3;
Console.WriteLine(eredmeny1);
Console.WriteLine(eredmeny2);Megoldás
11
21Amit ebből biztosan vigyél tovább
- A
+,-,*,/és%aritmetikai műveleteket végez. - Két
intosztásakor egész eredményt kapsz: a tört rész levágódik, nincs kerekítés. - A
%az osztási maradékot adja vissza. - A zárójel módosíthatja a műveleti sorrendet.
- A
+=,-=,*=és/=rövidebb értékadó formák; a++eggyel növel, a--eggyel csökkent. - Az összehasonlítás eredménye
truevagyfalse. - Az
=értékadás, a==összehasonlítás.
Gyors önellenőrzés
Válaszolj fejben, és csak utána nyisd le a választ.
1. Mit jelent a % operátor?
Az osztás maradékát adja meg: a 10 % 3 eredménye 1.
2. Miért lesz az 5 / 2 eredménye 2, ha mindkét érték int?
Mert két egész szám osztásakor a C# egész osztást végez, és a tört részt levágja.
3. Mi a különbség az = és a == között?
Az = értéket ad egy változónak, a == azt vizsgálja, hogy két érték egyenlő-e.
4. Mit csinál a pont += 5; utasítás?
Öttel növeli a pont változó értékét, ugyanaz, mint a pont = pont + 5;
5. Milyen típusú eredményt ad a 10 > 4 kifejezés?
Logikai (bool) értéket: ebben az esetben true.
Mit tudsz már?
- Számolsz változókkal a négy alapművelettel és a maradékos osztással.
- Tudod, mikor ad az osztás egész és mikor tizedes eredményt.
- Használod a
+=,-=,++és--rövidítéseket. - Összehasonlítasz értékeket, és tudod, hogy az eredmény logikai érték.
- Nem kevered össze az
=és a==jelet.
Hamarosan: Mini projekt – tanulmányi átlag kalkulátor
Az eddig tanultakat egy saját programban használod: adatbekérés, típuskonverzió és számolás operátorokkal. Utána jönnek a feltételek, amelyekkel a program az összehasonlítások alapján dönteni is tud.





