Operator: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Priotitäten von Operatoren)
 
(18 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein Operator kann auf Werte angewendet werden, um diese zu kombinieren oder manipulieren. So ist z.B. '''+''' ein zweistelliger Operator und addiert zwei numerische Werte miteinander oder konkateniert einen String an einen anderen.
+
Ein '''Operator''' kann auf Werte angewendet werden, um diese zu kombinieren oder manipulieren. So ist z.B. '''+''' ein zweistelliger '''Operator''' und addiert zwei numerische Werte miteinander oder konkateniert einen [[String]] an einen anderen.
 +
 
 +
'''Vergleiche''' bestehen immer aus zwei Operanden und einem Operator dazwischen.
 +
 
 +
[[Datei:compare.png]]
  
 
= Erlaubte Operatoren =
 
= Erlaubte Operatoren =
  
Auf jedem primitiven Datentyp sind in Java unterschiedliche Operatoren erlaubt.
+
Auf jeden [[Primitiver Datentyp|primitiven Datentyp]] sind in [[Java]] unterschiedliche '''Operatoren''' erlaubt.
  
 
{| class = "wikitable" width=100%
 
{| class = "wikitable" width=100%
 
  ! Datentyp !! Operator !! Funktion
 
  ! Datentyp !! Operator !! Funktion
 
  |-
 
  |-
  | rowspan="2" | boolean
+
  | rowspan="4" | [[boolean]]
 
  | &&
 
  | &&
  | UND-Verknüpfung zwischen linkem und rechtem Operand
+
  | UND-Verknüpfung zwischen linkem und rechtem Operanden
 
  |-
 
  |-
 
  | ||
 
  | ||
  | ODER-Verknüpfung zwischen linkem und rechtem Operand
+
  | ODER-Verknüpfung zwischen linkem und rechtem Operanden
  |
+
|-
 +
| ==
 +
| Vergleich auf Gleichheit mit einem anderen '''boolean'''
 +
|-
 +
| !
 +
| Negation des Operanden rechts vom !
 +
|-
 +
| rowspan="13" | [[byte]], [[char]], [[short]], [[Integer|int]], [[long]]
 +
| +
 +
| Addition von linkem mit rechtem Operanden
 +
|-
 +
| -
 +
| Subtraktion von linkem mit rechtem Operand
 +
|-
 +
| *
 +
| Multiplikation von linkem mit rechtem Operanden
 +
|-
 +
| /
 +
| Division von linkem mit rechtem Operanden
 +
|-
 +
| %
 +
| Modulo Operation (Division mit Rest) von linkem mit rechtem Operanden
 +
|-
 +
| ++
 +
| Inkrement der Variablen links vom Operator um 1
 +
|-
 +
| --
 +
| Dekrement der Variablen links vom Operator um 1
 +
|-
 +
| ==
 +
| Vergleich des linken und rechten Operanden miteinander auf Gleichheit
 +
|-
 +
| !=
 +
| Vergleich des linken und rechten Operanden miteinander auf Ungleichheit
 +
|-
 +
| <
 +
| Vergleich ob der linke Operand kleiner ist als der rechte Operand
 +
|-
 +
| >
 +
| Vergleich ob der linke Operand größer ist als der rechte Operand
 +
|-
 +
| <=
 +
| Vergleich ob der linke Operand kleiner oder gleich dem rechten Operanden ist
 +
|-
 +
| >=
 +
| Vergleich ob der linke Operand größer oder gleich dem rechten Operanden ist
 +
  |-
 
  |}
 
  |}
  
 +
= Beispiele =
 +
 +
 +
'''Beispiel 1'''
 +
<source lang="java">
 +
int a = 5;
 +
int b = 7;
 +
boolean c = a<2;
 +
boolean d = a+b>4 && a==5;
 +
boolean e = a-b>4 && a==5;
 +
System.out.println("c: "+c+"d: "+d + "e: "+e);
 +
</source>
 +
 +
Ausgabe
 +
c: false d: true e: false
 +
 +
'''Beispiel 2'''
 +
<source lang="java" >
 +
int a = 7;
 +
boolean c = (a>2 && (a-3)!=4)||(a==9 || a>=5);
 +
boolean d = a+b>4 && a==5;
 +
System.out.println("c: "+c + "d: "+d);
 +
</source>
 +
 +
Ausgabe
 +
c: true d: true
 +
'''Beispiel 3'''
 +
<source lang="java" >
 +
boolean c;
 +
boolean d;
 +
short a = 50;
 +
short b = a + 40;
 +
System.out.ptintln("a: "+ a + "b: " +b);
 +
 +
a++;
 +
b = b/3;
 +
System.out.ptintln("a: "+ a + "b: " +b);
 +
 +
c = (a%2==0);
 +
d = (b%2==0);
 +
 +
System.out.println("a is an even number: "+c + ", b is an even number: "+d);
 +
</source>
 +
 +
Ausgabe
 +
a: 50 b: 90
 +
a: 51 b: 30
 +
a is an even number: false, b is an even number: true
 +
 +
=Prioritäten=
  
=Priotitäten von Operatoren=
+
Die '''Prioritäten''' von Operatoren bestimmen, in welcher '''Reihenfolge''' sie ausgeführt werden. Je kleiner der Rang, desto höher die Priorität der Ausführung. Die Auswertung von geklammerten Ausdrücken hat dabei, wie bei mathematischen Formeln, die höchste Priorität.
  
 
{| class="wikitable"
 
{| class="wikitable"

Aktuelle Version vom 2. März 2017, 15:36 Uhr

Ein Operator kann auf Werte angewendet werden, um diese zu kombinieren oder manipulieren. So ist z.B. + ein zweistelliger Operator und addiert zwei numerische Werte miteinander oder konkateniert einen String an einen anderen.

Vergleiche bestehen immer aus zwei Operanden und einem Operator dazwischen.

Compare.png

Erlaubte Operatoren

Auf jeden primitiven Datentyp sind in Java unterschiedliche Operatoren erlaubt.

Datentyp Operator Funktion
boolean && UND-Verknüpfung zwischen linkem und rechtem Operanden
|| ODER-Verknüpfung zwischen linkem und rechtem Operanden
== Vergleich auf Gleichheit mit einem anderen boolean
 ! Negation des Operanden rechts vom !
byte, char, short, int, long + Addition von linkem mit rechtem Operanden
- Subtraktion von linkem mit rechtem Operand
* Multiplikation von linkem mit rechtem Operanden
/ Division von linkem mit rechtem Operanden
 % Modulo Operation (Division mit Rest) von linkem mit rechtem Operanden
++ Inkrement der Variablen links vom Operator um 1
-- Dekrement der Variablen links vom Operator um 1
== Vergleich des linken und rechten Operanden miteinander auf Gleichheit
 != Vergleich des linken und rechten Operanden miteinander auf Ungleichheit
< Vergleich ob der linke Operand kleiner ist als der rechte Operand
> Vergleich ob der linke Operand größer ist als der rechte Operand
<= Vergleich ob der linke Operand kleiner oder gleich dem rechten Operanden ist
>= Vergleich ob der linke Operand größer oder gleich dem rechten Operanden ist

Beispiele

Beispiel 1

 int a = 5;
 int b = 7;
 boolean c = a<2;
 boolean d = a+b>4 && a==5;
 boolean e = a-b>4 && a==5;
 System.out.println("c: "+c+"d: "+d + "e: "+e);

Ausgabe

c: false d: true e: false 

Beispiel 2

 int a = 7;
 boolean c = (a>2 && (a-3)!=4)||(a==9 || a>=5);
 boolean d = a+b>4 && a==5;
 System.out.println("c: "+c + "d: "+d);

Ausgabe

c: true d: true

Beispiel 3

 boolean c;
 boolean d;
 short a = 50;
 short b = a + 40;
 System.out.ptintln("a: "+ a + "b: " +b);

 a++;
 b = b/3;
 System.out.ptintln("a: "+ a + "b: " +b);

 c = (a%2==0);
 d = (b%2==0);

 System.out.println("a is an even number: "+c + ", b is an even number: "+d);

Ausgabe

a: 50 b: 90
a: 51 b: 30
a is an even number: false, b is an even number: true

Prioritäten

Die Prioritäten von Operatoren bestimmen, in welcher Reihenfolge sie ausgeführt werden. Je kleiner der Rang, desto höher die Priorität der Ausführung. Die Auswertung von geklammerten Ausdrücken hat dabei, wie bei mathematischen Formeln, die höchste Priorität.

Operator Rang Typ Beschreibung
++, -- 1 arithmetisch Inkrement und Dekrement
+, - 1 arithmetisch unäres Plus
 ! 1 [ boolean] logisches Komplement
(Typ) 1 jeder Cast
*, /, % 2 arithmetisch multiplikative Operationen ("Punktrechnung")
+, - 3 arithmetisch additive Operationen ("Strichrechnung")
+ 3 String String-Konkatenation
<, <=, >, >= 5 arithmetisch numerische Vergleiche
==, != 6 primitiv Gleichheit/Ungleichheit von Werten
& 7 [ boolean] logisches Und
^ 8 [ boolean] logisches exklusives Oder
| 9 [ boolean] logisches Oder
&& 10 [ boolean] logisches konditionales Und
|| 11 [ boolean] logisches konditionales Oder
= 13 jeder Zuweisung
+=, -=, *=, /= 14 jeder Zuweisung mit Operation

Quelle: http://openbook.rheinwerk-verlag.de/javainsel/javainsel_02_004.html#dodtp44c70ec5-17d6-4493-bac6-218399d01cf8