Lekcja 4. Operatory w C#
PodstawowyPo co się tego uczymy?
Bez operatorów program może co najwyżej wypisać stały tekst — operatory to narzędzie, dzięki któremu program faktycznie coś OBLICZA i PORÓWNUJE, co jest fundamentem każdej decyzji podejmowanej w kodzie (Lekcja 6).
Teoria
Operator to symbol nakazujący programowi wykonanie konkretnej operacji na wartościach (tzw. operandach) — dodawania, porównania, przypisania. Znasz je już z matematyki, C# dodaje do nich kilka własnych.
Operatory arytmetyczne (do liczenia): + dodawanie, - odejmowanie, * mnożenie, / dzielenie, % reszta z dzielenia (modulo — bardzo przydatne, np. do sprawdzania parzystości liczby).
Operatory przypisania: = przypisuje wartość, a skrócone warianty +=, -=, *=, /= łączą operację arytmetyczną z przypisaniem w jednym kroku (x += 5; to skrót od x = x + 5;).
Operatory inkrementacji/dekrementacji: ++ zwiększa wartość o 1, -- zmniejsza o 1 — najczęściej spotykane w pętlach (Lekcja 7).
Operatory porównania (zwracają true/false): == równe, != różne, >, <, >=, <=. Uwaga: pojedynczy znak = to PRZYPISANIE, a podwójny == to PORÓWNANIE — to jedna z najczęstszych pomyłek początkujących.
Operatory logiczne (łączą warunki): && (i — oba warunki muszą być prawdziwe), || (lub — wystarczy jeden), ! (zaprzeczenie, odwraca true na false i odwrotnie).
Przykład z życia
Operator modulo (%) używany jest wszędzie tam, gdzie trzeba sprawdzić "co N-ty element" — np. co 5. klient dostaje rabat, albo czy numer wiersza jest parzysty (do naprzemiennego kolorowania tabeli).
Kod (C#)
using System;
class Program
{
static void Main()
{
int punkty = 10;
punkty += 5; // skrót od: punkty = punkty + 5;
Console.WriteLine("Punkty: " + punkty); // 15
int liczba = 7;
bool jestParzysta = (liczba % 2 == );
Console.WriteLine("Czy parzysta? " + jestParzysta); // False
int wiek = 20;
bool maPrawoJazdy = true;
bool mozeWypozyczycAuto = (wiek >= 18) && maPrawoJazdy;
Console.WriteLine("Może wypożyczyć auto? " + mozeWypozyczycAuto); // True
}
}
Komentarz i wyjaśnienie kodu
liczba % 2 == 0 sprawdza resztę z dzielenia przez 2 — jeśli wynosi 0, liczba jest parzysta. Nawiasy wokół (wiek >= 18) && maPrawoJazdy nie są konieczne składniowo, ale znacząco poprawiają czytelność złożonych warunków logicznych.
Ćwiczenie samodzielne
Napisz program obliczający resztę z dzielenia dwóch wpisanych na sztywno liczb i sprawdzający, czy wynik jest równy zero.
Plac zabaw — wypróbuj online
Poniższy kod wykonuje się od razu w Twojej przeglądarce — nic nie trzeba instalować. Zmień kod i kliknij „Uruchom”.
Zadania do pracy własnej
Napisz program obliczający pole i obwód prostokąta o zadanych bokach.
Napisz program sprawdzający dwoma operatorami logicznymi, czy podana (na sztywno) ocena mieści się w zakresie 1-6 ORAZ jest liczbą całkowitą dodatnią.
Napisz kalkulator ceny biletu do kina: cena bazowa 20 zł, zniżka 50% dla wieku poniżej 12 lat LUB powyżej 65 lat, dodatkowa zniżka 20% dla studentów (łączona z pozostałymi zniżkami) — użyj operatorów arytmetycznych, porównania i logicznych razem.
Typowe błędy
Najczęstszy błąd to pomylenie = (przypisanie) z == (porównanie) — if (x = 5) w C# jest błędem kompilacji przy typie bool (inaczej niż w niektórych innych językach), więc kompilator Cię ostrzeże, ale warto zapamiętać różnicę od razu. Drugi błąd: dzielenie dwóch liczb całkowitych (int) i oczekiwanie wyniku z częścią dziesiętną — 7 / 2 w C# da 3 (dzielenie całkowitoliczbowe), a nie 3.5, chyba że przynajmniej jedna z liczb jest typu double.
Nawiązanie do egzaminu zawodowego
To realizacja efektu INF.04.4.4 z podstawy programowej: "stosuje wyrażenia, instrukcje i biblioteki" — konkretnie kryterium dotyczące operatorów arytmetycznych, przypisania, porównania i logicznych oraz priorytetów ich wykonywania.