Einstieg in die Informatik mit Java

Ähnliche Dokumente
Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Softwareentwicklung Ausdrücke und Typkonversionen

Einstieg in die Informatik mit Java

Java Einführung Operatoren Kapitel 2 und 3

Programmieren in C / C++ Grundlagen C 2

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Vorlesung 6: Operatoren, Logische Ausdrücke

Dr. Monika Meiler. Inhalt

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 16

Grundlagen der Informatik 2. Operatoren

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

L6. Operatoren und Ausdrücke

Primitive Datentypen und Felder (Arrays)

Algorithmen & Programmierung. Reelle Zahlen in C (2) Rechnen mit Gleitkommazahlen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kompaktkurs Einführung in die Programmierung. 3. Fundamentale Datentypen, Ausdrücke

2.5 Primitive Datentypen

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

JAVA-Datentypen und deren Wertebereich

Operatoren und Ausdrücke

Operatoren und Ausdrücke

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Die einfachsten Anweisungen

Java für Anfänger Teil 3: Integer-Typen. Programmierkurs Manfred Jackel

Einstieg in die Informatik mit Java

Primitive Datentypen

Kapitel 3: Variablen

Einführung in die Informatik. Processing Numbers. Motivation. Primitive Datentypen. Operatoren versus Methoden

3. Datentypen, Ausdrücke und Operatoren

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

Grundstruktur eines C-Programms

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

9. Bitlevel-Verarbeitung in C

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

ModProg 15-16, Vorl. 5

Unterlagen. CPP-Uebungen-08/

Funktionales C++ zum Ersten

4. Datentypen. Einleitung Eingebaute Datentypen. Konversion / Type-Cast. Operatoren. Übersicht Die Datentypen char, float und double Standardwerte

String-Konkatenation

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Einstieg in die Informatik mit Java

4. Operatoren, Ausdrücke und einfache Anweisungen

Kapitel 5. Datentypen und Operatoren

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

RO-Tutorien 3 / 6 / 12

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Einstieg in die Informatik mit Java

Algorithmen zur Datenanalyse in C++

2. Programmierung in C

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

Einführung in die Programmierung mit VBA

C++ - Operatoren. Eigene Klassen mit neuen Funktionen

Propädeutikum zur Programmierung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Grundlagen der Programmierung

Einführung in die Programmierung II. 2. Fundamentale Datentypen, Ausdrücke

Algorithmen und ihre Programmierung

Werkzeuge zur Programmentwicklung

Numerische Datentypen. Simon Weidmann

Einstieg in die Informatik mit Java

Wie entwerfe ich ein Programm?

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue

2 Imperative Sprachkonzepte

Ein erstes Java-Programm

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Objektorientierte Programmierung. Kapitel 5: Wertausdrücke (Expressions)

Scala: Klassen, Methoden und Objekte. von Simon Lerch

Übersicht. Informatik 1 Teil 4: Programmwiederholungen (Schleifen), Entwurf, Mathematikfunktionen

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

JAVA - Methoden

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Präzedenz von Operatoren

C-Vorrangregeln. Version Web:

Vorkurs Informatik WiSe 16/17

Programmieren in Java

3. Grundanweisungen in Java

Einführung in die Programmierung für Physiker. Die Programmiersprache C Datentypen, Operatoren, Ausdrücke

Modul 122 VBA Scribt.docx

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 3.Übung bis

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Vorlesung Programmieren

Elementare Konzepte von

Einstieg in die Informatik mit Java

Modellierung und Programmierung

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Datentypen Übersicht. C Datentypen und Operatoren. Deklaration. Übersicht. Um eine Variable zu nutzen, muss sie zunächst deklariert werden

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

TIAI1004: Programmierung

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Ausdrücke. Variable, Typ, Kontext, Deklaration, Initialisierung, Ausdruck, Syntax, Semantik, Seiteneffekt

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Kap 9. Bitoperationen und -strukturen

3.4 Daten und Operationen. Wir werden uns in diesem Kapitel näher mit Daten und Operationen in Java beschäftigen.

Diana Lange. Generative Gestaltung Operatoren

Transkript:

Vorlesung vom 25.4.07, Ausdrücke

Übersicht 1 Die wichtigsten arithmetischen Ausdrücke Arithmetische Operatoren Inkrement und Dekrementoperatoren Zuweisungsoperator Mathematische Standardfunktionen Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen 7 Priorität der Operatoren

Arithmetische Operatoren einstellig: + - zweistellig: + - * / % Achtung: Sind beide Operanden ganzzahlig, so handelt es sich bei / (vgl. Pascal: div) um die ganzzahlige Division, d. h. Nachkommastellen werden abgeschnitten! Dies gilt auch bei einem negativen Ergebnis!

Arithmetische Operatoren einstellig: + - zweistellig: + - * / % Achtung: Sind beide Operanden ganzzahlig, so handelt es sich bei / (vgl. Pascal: div) um die ganzzahlige Division, d. h. Nachkommastellen werden abgeschnitten! Dies gilt auch bei einem negativen Ergebnis! Beispiele: a = 5.0/3.0; // ergibt a = 1.666 a = 5.0/3; // ebenso a = 5/3.0; // ebenso b = 5/3; // ergibt b = 1 c = 5/3. ;// und was ergibt dies?

Arithmetische Operatoren einstellig: + - zweistellig: + - * / % Achtung: Sind beide Operanden ganzzahlig, so handelt es sich bei / (vgl. Pascal: div) um die ganzzahlige Division, d. h. Nachkommastellen werden abgeschnitten! Dies gilt auch bei einem negativen Ergebnis! Beispiele: a = 5.0/3.0; // ergibt a = 1.666 a = 5.0/3; // ebenso a = 5/3.0; // ebenso b = 5/3; // ergibt b = 1 c = 5/3. ;// und was ergibt dies?

Rest bei der Division Der Rest bei der Division zweier ganzer Zahlen (vgl. Pascal: mod) kann mit Hilfe des Operators % bestimmt werden. Es gilt: a % b = a - (a/b)*b. Beispiele: c = 5 % 3; // ergibt c = 2 d = (-5)/3 // ergibt d = -1 e = (-5) % 3 // ergibt e = -2

Rest bei der Division Der Rest bei der Division zweier ganzer Zahlen (vgl. Pascal: mod) kann mit Hilfe des Operators % bestimmt werden. Es gilt: a % b = a - (a/b)*b. Beispiele: c = 5 % 3; // ergibt c = 2 d = (-5)/3 // ergibt d = -1 e = (-5) % 3 // ergibt e = -2

Rest bei der Division Achtung: Der Restoperator kann auch auf Gleitkommazahlen angewandt werden! Beispiel: f = 3.5 % 1.1; // ergibt f = 0.2

Inkrement- und Dekrementoperatoren Der Inkrementoperator ++ erhöht den Operanden um eins (vgl. Pascal: succ, inc). Der Dekrementoperator -- vermindert den Operanden um eins (vgl. Pascal: pred, dec).

Präfix und Postfixvarianten Beide Operatoren können sowohl vor als auch nach dem Operanden stehen. Ihre Wirkung auf den Operanden ist dabei gleich, allerdings unterscheiden sich die beiden Varianten im Wert des Ausdrucks: Bei der Präfixvariante wird zuerst der Wert des Operanden um eins verändert (erhöht bzw. vermindert) und erst danach der Wert des Ausdrucks zugewiesen,

Präfix und Postfixvarianten Beide Operatoren können sowohl vor als auch nach dem Operanden stehen. Ihre Wirkung auf den Operanden ist dabei gleich, allerdings unterscheiden sich die beiden Varianten im Wert des Ausdrucks: Bei der Präfixvariante wird zuerst der Wert des Operanden um eins verändert (erhöht bzw. vermindert) und erst danach der Wert des Ausdrucks zugewiesen, bei der Postfixvariante geschieht dies in genau umgekehrter Reihenfolge.

Präfix und Postfixvarianten Beide Operatoren können sowohl vor als auch nach dem Operanden stehen. Ihre Wirkung auf den Operanden ist dabei gleich, allerdings unterscheiden sich die beiden Varianten im Wert des Ausdrucks: Bei der Präfixvariante wird zuerst der Wert des Operanden um eins verändert (erhöht bzw. vermindert) und erst danach der Wert des Ausdrucks zugewiesen, bei der Postfixvariante geschieht dies in genau umgekehrter Reihenfolge. Beispiel: i = 1; g = ++i; // ergibt g = 2 und i = 2. i = 1; h = i++; // ergibt h = 1 und i = 2.

Präfix und Postfixvarianten Beide Operatoren können sowohl vor als auch nach dem Operanden stehen. Ihre Wirkung auf den Operanden ist dabei gleich, allerdings unterscheiden sich die beiden Varianten im Wert des Ausdrucks: Bei der Präfixvariante wird zuerst der Wert des Operanden um eins verändert (erhöht bzw. vermindert) und erst danach der Wert des Ausdrucks zugewiesen, bei der Postfixvariante geschieht dies in genau umgekehrter Reihenfolge. Beispiel: i = 1; g = ++i; // ergibt g = 2 und i = 2. i = 1; h = i++; // ergibt h = 1 und i = 2.

Zuweisungsoperator Syntax: Variable = Ausdruck Der Zuweisungsoperator = steht zwischen einer Variablen (linke Seite) und einem Ausdruck (rechte Seite). Der Ausdruck wird ausgewertet und der Wert anschließend der Variablen zugewiesen. Da es sich um einen Operator handelt, erhält der gesamte Ausdruck ebenfalls den ermittelten Wert.

Zuweisungsoperator Syntax: Variable = Ausdruck Der Zuweisungsoperator = steht zwischen einer Variablen (linke Seite) und einem Ausdruck (rechte Seite). Der Ausdruck wird ausgewertet und der Wert anschließend der Variablen zugewiesen. Da es sich um einen Operator handelt, erhält der gesamte Ausdruck ebenfalls den ermittelten Wert. Achtung: Bei der Zuweisung handelt sich im Gegensatz zu Pascal um einen Operator! Mehrfachzuweisungen sind erlaubt (a = b = 1;)!

Zuweisungsoperator Syntax: Variable = Ausdruck Der Zuweisungsoperator = steht zwischen einer Variablen (linke Seite) und einem Ausdruck (rechte Seite). Der Ausdruck wird ausgewertet und der Wert anschließend der Variablen zugewiesen. Da es sich um einen Operator handelt, erhält der gesamte Ausdruck ebenfalls den ermittelten Wert. Achtung: Bei der Zuweisung handelt sich im Gegensatz zu Pascal um einen Operator! Mehrfachzuweisungen sind erlaubt (a = b = 1;)!

Mathematische Standardfunktionen Mathematische Standardfunktionen sind in Java in der Klasse java.lang.math enthalten. Diese Klasse braucht nicht zu importiert werden, sie wird standardmäßig geladen. Allerdings muss bei der Verwendung von Methoden und Konstanten jeweils der Klassenname Math vorangestellt werden. Beispiele: Sinusfunktion: Math.sin(x), Konstante π: Math.PI Seit Java 5 geht auch: import static java.lang.math.*; danach kann Math. weggelassen werden.

Mathematische Standardfunktionen Mathematische Standardfunktionen sind in Java in der Klasse java.lang.math enthalten. Diese Klasse braucht nicht zu importiert werden, sie wird standardmäßig geladen. Allerdings muss bei der Verwendung von Methoden und Konstanten jeweils der Klassenname Math vorangestellt werden. Beispiele: Sinusfunktion: Math.sin(x), Konstante π: Math.PI Seit Java 5 geht auch: import static java.lang.math.*; danach kann Math. weggelassen werden.

Tabelle der Standardfunktionen in java.lang.math Methode Funktion Argumenttyp Ergebnistyp abs(x) Absolutbetrag int int long long float float double double acos(x) Arkuskosinus double double asin(x) Arkussinus double double atan(x) Arkustangens double double atan2(x,y) Konvertiert kartesische x: double double in polare Koordinaten. y: double cos(x) Kosinus double double ceil(x) Nächste grössere ganze Zahl double double exp(x) Exponentialfunktion double double floor(x) Nächste kleinere ganze Zahl double double log(x) Natürlicher Logarithmus double double max(x,y) Maximum int int long long float float double double min(x,y) Minimum int int long long float float double double pow(x,y) x hoch y x: double double y: double random() G. v. Zufallszahl aus [0, 1) double

Tabelle der Standardfunktionen, Fortsetzung Methode Funktion Argumenttyp Ergebnistyp rint(x) Nächste ganze Zahl double double round(x) Rundet zur float int nächsten ganzen Zahl double long sin(x) Sinus double double sqrt(x) Wurzel double double tan(x) Tangens double double todegrees(x) Konvertiert double double Bogen in Gradmaße toradians(x) Konvertiert double double Grad in Bogenmaße

Vergleichsoperatoren Vergleichsoperatoren liefern boolsche Werte als Ergebnistyp zurück. Operator Bedeutung == gleich!= ungleich <= kleiner gleich >= grösser gleich < kleiner > grösser

Kombinierte Zuweisungsoperatoren Kombinierte Zuweisungsoperatoren verkürzen die Schreibweise von Zuweisungen der Art: a = a b; Steht also links wie rechts vom Zuweisungsoperator = dieselbe Variable, kann der Ausdruck auch verkürzt geschrieben werden als: a = b;

Kombinierte Zuweisungsoperatoren Kombinierte Zuweisungsoperatoren verkürzen die Schreibweise von Zuweisungen der Art: a = a b; Steht also links wie rechts vom Zuweisungsoperator = dieselbe Variable, kann der Ausdruck auch verkürzt geschrieben werden als: a = b; Der Zuweisungsoperator lässt sich mit den folgenden Operatoren kombinieren: *= -= /= & = = ^= %= <<= >>= >>>=

Kombinierte Zuweisungsoperatoren Kombinierte Zuweisungsoperatoren verkürzen die Schreibweise von Zuweisungen der Art: a = a b; Steht also links wie rechts vom Zuweisungsoperator = dieselbe Variable, kann der Ausdruck auch verkürzt geschrieben werden als: a = b; Der Zuweisungsoperator lässt sich mit den folgenden Operatoren kombinieren: *= -= /= & = = ^= %= <<= >>= >>>=

Kombinierte Zuweisungsoperatoren, Beispiele Beispiel: g=1, h=1; g = g + 5; // ergibt g = 6. h += 5; // ergibt h = 6. Achtung: Die Wirkung auf g und h ist die gleiche, die Anzahl der Auswertungen von g und h sind dagegen nicht gleich. g wird hier zweimal ausgewertet, h hingegen nur einmal (wichtig bei Nebeneffekten)!

Kombinierte Zuweisungsoperatoren, Beispiele Beispiel: g=1, h=1; g = g + 5; // ergibt g = 6. h += 5; // ergibt h = 6. Achtung: Die Wirkung auf g und h ist die gleiche, die Anzahl der Auswertungen von g und h sind dagegen nicht gleich. g wird hier zweimal ausgewertet, h hingegen nur einmal (wichtig bei Nebeneffekten)!

Logische Operatoren Operator Bedeutung & && Logisches Und Wahr, falls beide Operanden wahr sind. Logisches Oder Wahr, falls mindestens einer der Operanden wahr ist.! Logische Negation Wahr, falls der Operand falsch ist. ~ Exklusives Oder Wahr, falls die Operanden verschieden sind.

Kurzschlussoperatoren Die Operatoren && und heißen Kurzschlussoperatoren. Sie unterscheiden sich von den Operatoren & und durch die Art der Auswertung des zugrundeliegenden Ausdrucks: Kann aus der linken Seite schon das Ergebnis bestimmt werden, so wird die rechte Seite nicht mehr ausgewertet. Beispiel: int i, j; if ((j!=0) && (i/j < 5)) // i/j wird bei j=0 // nicht ausgewertet! if ((j!=0) & (i/j < 5)) // i/j wird bei j=0 // ausgewertet! Fehler!

Kurzschlussoperatoren Die Operatoren && und heißen Kurzschlussoperatoren. Sie unterscheiden sich von den Operatoren & und durch die Art der Auswertung des zugrundeliegenden Ausdrucks: Kann aus der linken Seite schon das Ergebnis bestimmt werden, so wird die rechte Seite nicht mehr ausgewertet. Beispiel: int i, j; if ((j!=0) && (i/j < 5)) // i/j wird bei j=0 // nicht ausgewertet! if ((j!=0) & (i/j < 5)) // i/j wird bei j=0 // ausgewertet! Fehler!

Weitere Operatoren Operator Bedeutung a?b:c Konditionaloperator: Verkürzte Form für if... else... Ist a wahr, so ist das Ergebnis b, sonst c. & ˆ Bitoperatoren: Bitweises Und, Oder, exklusives Oder, bitweise Negation a << b Schiebeoperator: a wird um b Bits nach links verschoben. a >> b Schiebeoperator: a wird um b Bits nach rechts verschoben, dabei wird links mit einem Vorzeichenbit aufgefüllt. a >>> b Schiebeoperator: a wird um b Bits nach rechts verschoben, dabei wird mit Nullen aufgefüllt. Achtung: Grund für die Existenz des Operators >>> ist, daß es in Java keine unsigned Typen gibt!

Weitere Operatoren Operator Bedeutung a?b:c Konditionaloperator: Verkürzte Form für if... else... Ist a wahr, so ist das Ergebnis b, sonst c. & ˆ Bitoperatoren: Bitweises Und, Oder, exklusives Oder, bitweise Negation a << b Schiebeoperator: a wird um b Bits nach links verschoben. a >> b Schiebeoperator: a wird um b Bits nach rechts verschoben, dabei wird links mit einem Vorzeichenbit aufgefüllt. a >>> b Schiebeoperator: a wird um b Bits nach rechts verschoben, dabei wird mit Nullen aufgefüllt. Achtung: Grund für die Existenz des Operators >>> ist, daß es in Java keine unsigned Typen gibt!

Klassifizierung von Operatoren Operatoren werden anhand der folgenden Kriterien klassifiziert: (1) Anzahl der Operanden (unär, binär, tenär), (2) Priorität der Operatoren, (3) Assoziativität: Auswertung erfolgt in Normalfall von links nach rechts, bei unären Operatoren und Zuweisungen von rechts nach links, (4) Präfix oder Postfixvariante (nur für ++ und relevant).

Reihenfolge der Auswertung der Operanden Achtung: Operanden werden im Gegensatz zu Operatoren immer von links nach rechts ausgewertet! Beispiel: int k=2, l=3, m=4; k = l = m; // k,l,m haben alle den Wert 4. Der obige Ausdruck wird wie folgt ausgewertet: (1) k, (2) l, (3) m, (4) rechte Zuweisung, (5) linke Zuweisung.

Reihenfolge der Auswertung der Operanden Achtung: Operanden werden im Gegensatz zu Operatoren immer von links nach rechts ausgewertet! Beispiel: int k=2, l=3, m=4; k = l = m; // k,l,m haben alle den Wert 4. Der obige Ausdruck wird wie folgt ausgewertet: (1) k, (2) l, (3) m, (4) rechte Zuweisung, (5) linke Zuweisung. Achtung: Reihenfolge der Auswertungen ist bei Seiteneffekten bedeutsam!

Reihenfolge der Auswertung der Operanden Achtung: Operanden werden im Gegensatz zu Operatoren immer von links nach rechts ausgewertet! Beispiel: int k=2, l=3, m=4; k = l = m; // k,l,m haben alle den Wert 4. Der obige Ausdruck wird wie folgt ausgewertet: (1) k, (2) l, (3) m, (4) rechte Zuweisung, (5) linke Zuweisung. Achtung: Reihenfolge der Auswertungen ist bei Seiteneffekten bedeutsam!

Typumwandlungen, implizit (a) Umwandlung in größere Typen geht automatisch. byte short int long float double char int Achtung: Von long nach float können Rundungsfehler auftreten!

Typumwandlungen, implizit (a) Umwandlung in größere Typen geht automatisch. byte short int long float double char int Achtung: Von long nach float können Rundungsfehler auftreten!

Typumwandlungen, explizit (b) Umwandlungen in kleinere Typen können zu Fehlern führen und müssen deshalb explizit dem Kompiler mitgeteilt werden. Dies ist mit Hilfe des Cast Operators möglich: double float long int short byte int char byte short char Syntax: (Typname) Ausdruck

Typumwandlungen, explizit (b) Umwandlungen in kleinere Typen können zu Fehlern führen und müssen deshalb explizit dem Kompiler mitgeteilt werden. Dies ist mit Hilfe des Cast Operators möglich: double float long int short byte int char byte short char Syntax: (Typname) Ausdruck

Typumwandlungen, Beispiel Beispiel: float f; short s = (short) f;

Typumwandlungen von/nach boolean Achtung: Es existieren keine Konversionen von oder nach boolean, allerdings ist folgendes möglich: Beispiel: boolean b, int i; b = i!= 0; // wandelt Null in false, Eins in true um. i = b?1:0; // wandelt false in Null, true in Eins um.

Verwendete Datentypen Aus Effizienzgründen wird nicht in den Datentypen byte, short und char gerechnet, sondern in int. Bei gemischten Ausdrücken wird im größeren Typ gerechnet. Beispiel: byte a, b; byte c = (byte) (a + b); // Cast, da (a+b) vom Typ int

Verwendete Datentypen Aus Effizienzgründen wird nicht in den Datentypen byte, short und char gerechnet, sondern in int. Bei gemischten Ausdrücken wird im größeren Typ gerechnet. Beispiel: byte a, b; byte c = (byte) (a + b); // Cast, da (a+b) vom Typ int

Priorität der Operatoren Priorität Operator Assoz. Bedeutung 15., [], () L Komponentenzugriff bei Klassen, Feldern und Methodenaufruf 14 ++, --, +, -,!, ~ R Unäre Operatoren new Instanzbildung 13 (Typ) R Explizite Typkonvertierung 12 *, /, % L Multiplikative Operatoren 11 +, - L Additive Operatoren 10 <<, >>, >>> L Schiebeoperatoren 9 <,>,<=, >= L Vergleichsoperatoren instanceof 8 ==,!= L Vergleichsoperatoren 7 & L Und Operator (bitweise, logisch) 6 ^ L Exklusives Oder (bitweise, logisch) 5 L Oder Operator (bitweise, logisch) 4 && L (Logisches Und) Operator (Kurzschluß Auswertung) 3 L (Logisches Oder) Operator (Kurzschluß Auswertung) 2?: R Konditionaloperator 1 =, +=, *=, usw. R Zuweisungsoperatoren

Reihenfolge der Auswertung Die höchste Priorität wird mit der Zahl 15 gekennzeichnet, die niederste mit der Zahl 1. Operatoren mit gleicher Priorität werden von links nach rechts ( Assoz. = L = linksassoziativ) bzw. von rechts nach links ( Assoz. = R = rechtsassoziativ) ausgewertet.

Reihenfolge der Auswertung Die höchste Priorität wird mit der Zahl 15 gekennzeichnet, die niederste mit der Zahl 1. Operatoren mit gleicher Priorität werden von links nach rechts ( Assoz. = L = linksassoziativ) bzw. von rechts nach links ( Assoz. = R = rechtsassoziativ) ausgewertet. Außerdem kann die Reihenfolge der Operationen immer durch Klammern () festgelegt werden.

Reihenfolge der Auswertung Die höchste Priorität wird mit der Zahl 15 gekennzeichnet, die niederste mit der Zahl 1. Operatoren mit gleicher Priorität werden von links nach rechts ( Assoz. = L = linksassoziativ) bzw. von rechts nach links ( Assoz. = R = rechtsassoziativ) ausgewertet. Außerdem kann die Reihenfolge der Operationen immer durch Klammern () festgelegt werden.