Przeczytaj
Podsumowanie
Wyrażenia mogą się składać ze zmiennych, wartości i operatorów. Analogicznie do wyrażenia matematycznego:
w języku Java mamy wyrażenie:
gdzie wynik jednaCzwarta jest zmienną, x jest zmienną, jest operatorem (dzielenia), a jest konkretną wartością, czyli stałą.
Wyrażenia arytmetyczne
Tak w matematyce, jak i w języku Java można wykonywać działania arytmetyczne. Służą do tego operatory:
dodawania ,
odejmowania ,
mnożenia ,
dzielenia ,
reszty z dzielenia (modulo) .
Żeby zaprezentować działanie operatorów arytmetycznych, stworzymy dwie zmienne. Następnie wykonamy na nich działania z wykorzystaniem właśnie tych operatorów, a wynik wypiszemy do konsoli:
Pierwsze trzy wyniki są oczywiste. Dlaczego jednak wynik ilorazu to , a wynik operacji modulo to ?
Wynik ilorazu to , ponieważ nadaliśmy mu typ int. Zatem część ułamkowa została pominięta. Gdybyśmy chcieli otrzymać dokładny wynik w postaci liczby zmiennoprzecinkowej, wynik oraz co najmniej jedna ze zmiennych w wyrażeniu powinna być w takiej właśnie postaci, np.
Modulo to operacja wyznaczania reszty z dzielenia dwóch liczb. W matematyce operacja ta zapisywana jest w postaci wzoru:
Resztę z dzielenia możemy wyliczyć za pomocą równania:
Gdzie to dzielna, dzielnik, oznacza podłogępodłogę liczby .
Istnieje także jednoargumentowy operator arytmetyczny .
Zmienia on znak argumentu, czyli wyznacza liczbę przeciwną.
Operatory przypisania
Oprócz podstawowego operatora, wyrażanego za pomocą znaku równości, w języku Java istnieją także inne operatory przypisania. Są one stosowane, gdy wykonujemy działania na dwóch zmiennych i chcemy przypisać wynik do jednej z nich.
Stosuje się je najczęściej w formie skróconej:
Wyrażenia arytmetyczne są przetwarzane od lewej strony do prawej, zgodnie z kolejnością wykonywania działań w matematyce.
I tak jak w matematyce, możemy tę kolejność zmienić, stosując nawiasy.
Operatory relacyjne
Kolejna grupa operatorów to operatory relacyjne, które porównują ze sobą wartości. Są nimi:
operator równości ,
operator „różny od” ,
operatory silnych nierówności i ,
operatory słabych nierówności i .
Operatory porównania zwracają wartości logiczne true lub false.
Zmiennej typu boolean możemy przypisać także całe działanie i zwróci prawdę lub fałsz, np.
Operatora porównania nie należy mylić z operatorem przypisania . Choć podobne, znaczą coś innego. Pierwszy z nich sprawdza, czy wartości są równe, natomiast drugi przypisuje lub podstawia wartości do zmiennych.
Operatory logiczne
W języku Java istnieją również trzy podstawowe operatory logiczne:
to koniunkcja, czyli spójnik „i” (AND),
to alternatywa, czyli spójnik „lub” (OR),
to operator negacji, odwraca on wartość logiczną argumentu (NOT).
Operatory logiczne to spójniki koniunkcji, alternatywy oraz negacji w logice. Stosuje się je do łączenia dwóch lub więcej wartości (zmiennych), wyrażeń lub warunków.
Operatory logiczne również zwracają wartości logiczne:
koniunkcja zwróci
truewtedy i tylko wtedy, gdy wszystkie elementy są prawdą,alternatywa zwróci
true, gdy przynajmniej jeden z elementów jest prawdą,negacja zwróci
true, gdy argument ma wartośćfalse, afalse, gdy argument ma wartośćtrue.
Operatorów logicznych używa się m.in. w połączeniu z operatorami porównania do tworzenia instrukcji wyboru.
Dla powyższych danych czyWieksze jest prawdą, a czyRowne jest fałszem. Stąd koniunkcja zwróci false, ponieważ true false false. Natomiast alternatywa zwróci true, ponieważ wystarczy, że jeden warunek (w tym przypadku czyWieksze) jest prawdą.
Istnieje jeszcze jeden specyficzny operator: różnica symetryczna XOR (eXclusive OR). Jest on zapisywany za pomocą symbolu .
Zwraca on wartość true wtedy i tylko wtedy, gdy jeden (i nie więcej) z argumentów jest prawdziwy, dla operacji dwuargumentowych. Dla wyrażeń mających więcej argumentów zwraca true, gdy liczba argumentów prawdziwych jest nieparzysta.
Operatory inkrementacji i dekrementacji
Kolejną grupą operatorów w języku Java są operatory inkrementacji i dekrementacji, które można zaliczyć do operatorów arytmetycznych. Powodują one zwiększenie (inkrementację) lub zmniejszenie (dekrementację) zmiennej o jeden. Stosuje się je najczęściej w pętlachpętlach do zmiany wartości licznika. Operatory te dzielą się na:
postfiksowe;
xorazx, w których wartośćxjest zwiększana lub zmniejszana po przypisaniu do zmiennej,prefiksowe;
xorazx, w których wartośćxjest zwiększana lub zmniejszana przed przypisaniem do zmiennej.
Możemy więc także zapisać działanie x równoważnie jako x x 1 lub x 1.
Kolejność wykonywania działań
W języku Java działania wykonywane są, podobnie jak w matematyce, według ustalonych priorytetów, a gdy te są równe, wyrażenie przetwarzane jest od lewej do prawej. Kolejność tę możemy zmieniać, korzystając z nawiasów.
Listę priorytetów można przedstawić za pomocą tabeli:
Priorytet | Operatory | Opis |
|---|---|---|
| operatory jednoargumentowe: prefiksowe, negacji i zmiany znaku | |
, , | mnożenie, dzielenie, dzielenie modulo | |
, | dodawanie, odejmowanie | |
| operatory postfiksowe | |
, , , | operatory relacyjne: nierówności | |
, | operatory relacyjne: równy, różny | |
różnica symetryczna | ||
koniunkcja | ||
alternatywa | ||
, , , , , | operatory przypisania |
W języku Java istnieją jeszcze inne rodzaje operatorów. Są nimi operatory bitowe i trójargumentowy operator związany z instrukcjami warunkowymi.
Słownik
największa liczba całkowita nie większa od zadanej liczby
jedna z podstawowych składowych niemalże każdego języka programowania; pętle to instrukcje pozwalające na wykonywanie pewnego fragmentu kodu wielokrotnie