Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Podsumowanie

Wyrażenia mogą się składać ze zmiennych, wartości i operatorów. Analogicznie do wyrażenia matematycznego:

Linia 1. x plus 4 znak równości 6.

w języku Java mamy wyrażenie:

Linia 1. int jednaCzwarta znak równości x prawy ukośnik 4 średnik.

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:

Linia 1. int x znak równości 5 średnik. Linia 2. int y znak równości 6 średnik. Linia 4. int suma znak równości x plus y średnik. Linia 5. int roznica znak równości x minus y średnik. Linia 6. int iloczyn znak równości x asterysk y średnik. Linia 7. int iloraz znak równości x prawy ukośnik y średnik. Linia 8. int modulo znak równości x procent y średnik. Linia 10. System kropka out kropka println otwórz nawias okrągły suma zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek 11. Linia 11. System kropka out kropka println otwórz nawias okrągły roznica zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek minus 1. Linia 12. System kropka out kropka println otwórz nawias okrągły iloczyn zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek 30. Linia 13. System kropka out kropka println otwórz nawias okrągły iloraz zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek 0. Linia 14. System kropka out kropka println otwórz nawias okrągły modulo zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek 5.

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.

Linia 1. int x znak równości 5 średnik. Linia 2. double y znak równości 6 kropka 0d średnik. Linia 3. double iloraz znak równości x prawy ukośnik y średnik.
Ważne!

Modulo to operacja wyznaczania reszty z dzielenia dwóch liczb. W matematyce operacja ta zapisywana jest w postaci wzoru:

a mod d=r.

Resztę z dzielenia możemy wyliczyć za pomocą równania:

r=a-d·ad.

Gdzie a to dzielna, d dzielnik, x oznacza podłogępodłoga (część całkowita, cecha)podłogę liczby x.

Istnieje także jednoargumentowy operator arytmetyczny .
Zmienia on znak argumentu, czyli wyznacza liczbę przeciwną.

Linia 1. int liczbaDodatnia znak równości 7 średnik. Linia 2. int liczbaPrzeciwna znak równości minus liczbaDodatnia średnik. Linia 4. System kropka out kropka println otwórz nawias okrągły liczbaPrzeciwna zamknij nawias okrągły średnik. Linia 5. prawy ukośnik prawy ukośnik program wyświetli minus 7.

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:

Linia 1. int x znak równości 5 średnik. Linia 2. int y znak równości 6 średnik. Linia 4. x plus znak równości y średnik prawy ukośnik prawy ukośnik x znak równości x plus y średnik. Linia 5. x minus znak równości y średnik prawy ukośnik prawy ukośnik x znak równości x minus y średnik. Linia 6. x asterysk znak równości y średnik prawy ukośnik prawy ukośnik x znak równości x asterysk y średnik. Linia 7. x prawy ukośnik znak równości y średnik prawy ukośnik prawy ukośnik x znak równości x prawy ukośnik y średnik. Linia 8. x procent znak równości y średnik prawy ukośnik prawy ukośnik x znak równości x procent y średnik.
Ważne!

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 ,

  • operatory słabych nierówności .

Operatory porównania zwracają wartości logiczne true lub false.

Linia 1. double liczba1 znak równości 4 prawy ukośnik 5 średnik. Linia 2. double liczba2 znak równości 12 kropka 0d średnik. Linia 4. boolean rowny znak równości liczba1 znak równości znak równości liczba2 średnik. Linia 5. boolean rozny znak równości liczba1 wykrzyknik znak równości liczba2 średnik. Linia 6. boolean wieksze znak równości liczba1 zamknij nawias ostrokątny liczba2 średnik. Linia 8. System kropka out kropka println otwórz nawias okrągły rowny zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek false. Linia 9. System kropka out kropka println otwórz nawias okrągły rozny zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek true. Linia 10. System kropka out kropka println otwórz nawias okrągły wieksze zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek false.

Zmiennej typu boolean możemy przypisać także całe działanie i zwróci prawdę lub fałsz, np.

Linia 1. boolean czyWynikTo5 znak równości 2 prawy ukośnik 4 asterysk 4 znak równości znak równości 5 średnik. Linia 2. System kropka out kropka println otwórz nawias okrągły czyWynikTo5 zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek false.
Ważne!

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, a false, gdy argument ma wartość true.

Operatorów logicznych używa się m.in. w połączeniu z operatorami porównania do tworzenia instrukcji wyboru.

Linia 1. double x znak równości 9 kropka 8d średnik. Linia 2. double y znak równości 5 kropka 7d średnik. Linia 4. boolean czyWieksze znak równości x zamknij nawias ostrokątny y średnik. Linia 5. boolean czyRowne znak równości x znak równości znak równości y średnik. Linia 7. boolean koniunkcja znak równości czyWieksze ampersant ampersant czyRowne średnik. Linia 8. boolean alternatywa znak równości znak równości czyWieksze kreska pionowa kreska pionowa czyRowne średnik. Linia 10. System kropka out kropka println otwórz nawias okrągły koniunkcja zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek false. Linia 11. System kropka out kropka println otwórz nawias okrągły alternatywa zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Wynik dwukropek true.

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ętlapętlach do zmiany wartości licznika. Operatory te dzielą się na:

  • postfiksowe; x oraz x, w których wartość x jest zwiększana lub zmniejszana po przypisaniu do zmiennej,

  • prefiksowe; x oraz x, 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  1 lub  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

x, x, x, x

operatory jednoargumentowe: prefiksowe, negacji i zmiany znaku

, ,

mnożenie, dzielenie, dzielenie modulo

,

dodawanie, odejmowanie

x, x

operatory postfiksowe

, , , \lt=

operatory relacyjne: nierówności

,

operatory relacyjne: równy, różny

różnica symetryczna

koniunkcja

alternatywa

, , , , ,

operatory przypisania

Dla zainteresowanych

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

podłoga (część całkowita, cecha)
podłoga (część całkowita, cecha)

 największa liczba całkowita nie większa od zadanej liczby

pętla
pętla

jedna z podstawowych składowych niemalże każdego języka programowania; pętle to instrukcje pozwalające na wykonywanie pewnego fragmentu kodu wielokrotnie