| Arithmetische Operatoren, + - * / Modulo |
|
|
|
Ein arithmetischer Operator stellt die Verknüpfung zwischen einem Operanten mit den Operatoren dar. Also Addition (+), Subtraktion (-), Multiplikation (*) und die Division (/). Zur Bestimmung eines Restwertes (bei der Division) gibt es noch den Operator Modulo (%).
Etwas näher werden wir die Division und den Modulo-Operator betrachten. Der Operator ( / ) liefert als Ergebnis den Quotienten aus Dividend (linke Seite) und Divisor (rechte Seite) aus Ganzzahlen und Fließkommazahlen. Bei einer Ganzzahldivision wird das Ergebnis zu 0 (Null) hin gerundet! Beispiel:
Hier wird der Datentyp durch einen der Operanten bestimmt. Dividend oder Divisor muss vom Typ double sein, wenn das Ergebnis vom Typ double sein soll. Beispiel: System.out.println (10.0 / 3); // = 3,3333333333333334 System.out.println (10 / 3.0); // = 3,3333333333333334 oder
Wie wir es aus der Schule kennen, ist eine Division durch 0 nicht definiert. In Java ist das etwas anders. Eine Division durch 0 als Ganzzahl bringt uns eine Fehlermeldung (ArithmeticException) Beispiel: System.out.println(2/0); //ArithmeticException: / by zero Eine Division durch 0 als Gleitkommazahl bringt uns keine Fehlermeldung. Hier erhalten wir als Ergebnis Infinity (Unendlich) oder NaN (Not a Number) Beispiel: System.out.println(2.0/0.0); //Infinity
Der Restwert-Operator % (Modulo) Eine Ganzzahldivision kann wie im Fall 7/2 mit einem Rest enden. In diesem Fall gibt es den Rest 1. Diesen Rest liefert der Restwert-Operator oft auch Modulo genannt. Beispiele: 7/2 = 3 Rest 1 da: 3*2 = 6 + Rest von 1 = 7 (Modulo liefert uns hier den Wert 1) System.out.println( 7 % 2 ); // 1
14/3 = 4 Rest 2 da: 4*3 = 12 + Rest von 2 = 14 (Modulo liefert uns hier den Wert 1) Die Division und der Restwert richten sich nach der Formel: int(a/b)*b + (a%b) = a System.out.println(7%2); //1
System.out.println(-7%2); //-1
Der Modulo Operant eignet sich z.B. hervorragend für einen Test auf gerade oder ungerade Zahlen. Beispiel zahl !=0 //testet, ob zahl gerade oder ungerade ist ist zahl gerade, z.B. 4/2 = 2 Rest 0, ist das Ergebnis false (bedingung nicht erfüllt, da nur dann wahr (true), wenn das Ergebnis != (ungleich) 0 ist. |