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
true
wtedy 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;
x
orazx
, w których wartośćx
jest zwiększana lub zmniejszana po przypisaniu do zmiennej,prefiksowe;
x
orazx
, w których wartośćx
jest 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