Java


4. Operatory

4.1. Operatory arytmetyczne

Jednoargumentowe:

zmiana znaku

a = - a;

+

dla symetrii

+ 3.14

Dwuargumentowe:

+

dodawanie

a + b

odejmowanie

a − b

mnożenie

a ∗ b

/

dzielenie

a / b

%

dzielenie modulo

a % b

Dzielenie całkowite odrzuca cześć ułamkową, a dzielenie modulo ja zachowuje:

7/2 daje 3 7 % 2 daje 1

Zatem, dla liczb całkowitych wzór

( x / y ) ∗ y + x % y

zwraca wartość x.

Stałe NEGATIVE_INFINITY, POSITIVE_INFINITY i NaN przechowywane w obiektowych klasach liczb pozwalają uniknąć zgłaszania błędów przy operacjach arytmetycznych:

x

y

x / y

x % y

wartość
skończona

±0.0

±∞

NaN

wartość
skończona

±∞

±0.0

x

±0.0

±0.0

NaN

NaN

±∞

±0.0

±∞

NaN

±∞

wartość
skończona

±∞

NaN

±∞

±∞

NaN

NaN

Aplikacja Artymetyka

class Arytmetyka {

int x, y;

static int z;

static double d;

final static String NAGŁÓWEK = "APLIKACJA
ARYTMETYKA";

Arytmetyka ( int x, int y ) {

this.x = x;

this.y = y;

}

static void nagłówek ( ) {

System.out.println ( );

System.out.println ( NAGŁÓWEK );

System.out.println ( );

}

int dziel_mnóż ( ) {

return ( x / y ) * y + x % y;

}

static void dziel ( double x, double y ) {

double x_nad_y, x_mod_y;

x_nad_y = x / y;

x_mod_y = x % y;

System.out.println ( " " + x_nad_y + " " +
x_mod_y );

}

void pokaż ( ) {

System.out.println("x = " + x + " y = " +
y + " z = " + z );

}

public static void main ( String [ ] args ) {

nagłówek ( );

Arytmetyka a = new Arytmetyka ( 3, 4 );

// dzielenie liczb całkowitych

z = a.dziel_mnóż ( );

a.pokaż ( );

System.out.println ( "-----------------");

// dzielenie liczb rzeczywistych

System.out.println ( " x/y x%y ");

System.out.println ( "-----------------");

dziel ( 10.0, 3.0 );

dziel ( 10.0, 0.0 );

dziel ( 10.0, Double.POSITIVE_INFINITY );

dziel ( 0.0, 0.0 );

dziel ( Double.POSITIVE_INFINITY, 0.0 );

dziel ( Double.POSITIVE_INFINITY, 10.0 );

dziel ( Double.POSITIVE_INFINITY,
Double.POSITIVE_INFINITY);

}

}4.2. Operatory inkrementacji i dekrementacji

Przedrostkowe (prefiksowe):

Przyrostkowe (postfiksowe):

Przykład:

class Student {

// zmienne

String imię, nazwisko;

int nrIndeksu;

static int liczba = 0;

// konstruktor

Student ( String imię, String nazwisko ) {

this.imię = imię;

this.nazwisko = nazwisko;

nrIndeksu = ++liczba;

}

W tym przykładzie zastosowaliśmy inkrementację prefiksową. Jeżeli zamienilibyśmy ją na postfiksową ( nrIndeksu = liczba++; ), to zmienną nrIndeksu należałoby zainicjować na jedynkę.

Operatory inkrementacji i dekrementacji można stosować również do zmiennych typu char aby uzyskać następny lub poprzedni znak UNICODE.

4.3. Operatory logiczne

Jednoargumentowy:

!

negacja

a = !a;

Dwuargumentowe relacyjne:

>

większe

a > b

>=

większe lub równe

a >= b

<

mniejsze

a < b

<=

mniejsze lub równe

a <= b

==

równe

a == b

!=

różne

a != b

Dwuargumentowe warunkowe:

&&

koniunkcja (AND)

a && b

||

alternatywa (OR)

a || b

Uwagi:

  1. do sprawdzenia, czy wartość wyrażenia arytmetycznego jest poprawna służą metody Float.isNaN ( float ) i Double.isNaN ( double );

  2. wynik porównania referencji ref1 == ref2 jest prawdziwy, jeżeli ref1 i ref2 wskazują ten sam obiekt lub obie maja wartość null;

  3. do porównywania napisów służy metoda
    String.equals ( String )

  4. Java zawiera również operatory logiczne działające na bitach.

4.4. Operatory przypisania

Operator zwykłego przypisania wartości "=" można łączyć z dwuargumentowymi operatorami arytmetycznymi:

+=

a += b;

a = a + b;

−=

a −= b;

a = a − b;

∗=

a ∗= b;

a = a ∗ b

/=

a /= b;

a = a / b

%=

a %= b;

a = a % b

Zapis skrócony może zwiększyć efektywność programu: w wersji

tab [ indeks ( ) ] += 12;

metoda indeks ( ) jest wywoływana tylko raz, a w wersji

tab [ indeks ( ) ] = tab [ indeks ( ) ] + 12;

dwa razy.

Adam Borkowski Język programowania „Java” 4-7



Wyszukiwarka

Podobne podstrony:
Java Media FreamWork
java 2
Projekt java
JAVA tablice
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
Java Przewodnik dla poczatkujacych Wydanie V javpp5
zasady grupy, java, javascript, oprogramowanie biurowe, programowanie, programowanie 2, UTK, systemy
praktyczny kurs java NX2M5DXARLEHY6NHXOS5FJHKLI6ACRLQQSDRS2Q
notatki java 08
Praktyczny kurs Java
Java praca domowa 10
java 3 id 226367 Nieznany
Java Coding rules
java object serialization speci Nieznany
java script TY2DWI33KJCAKQBCFPFEFQ736KLTSQZ3F6JQE2Q
JP SS 4 start Java
notatki java 05
java swing
notatki java 07
helion java cwiczenia zaawansow Nieznany

więcej podobnych podstron