7 Ausdrücke. 7.1 Was ist ein Ausdruck?

Größe: px
Ab Seite anzeigen:

Download "7 Ausdrücke. 7.1 Was ist ein Ausdruck?"

Transkript

1 7 Ausdrücke In diesem Kapitel geben wir Ihnen ergänzende Informationen zu Goto Java 2, Kapitel 5, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. 7.1 Was ist ein Ausdruck? Was ein Ausdruck ist, erklären wir Ihnen am einfachsten an einem Beispiel. Schauen Sie sich das folgende Beispielprogramm an: 01 public class JavaDemo { 02 public static void main( String[] args ) { 03 int i = 5; 04 float f = 5.0f; 05 System.out.println( 5 ); 06 System.out.println("5"); 07 System.out.println( i ); 08 System.out.println( f ); 9 System.out.println( 5 * (i - 3 * f ) ); Das Programm gibt einige Werte auf den Bildschirm aus, wobei wir wieder die bereits bekannte Methode System.out.println verwenden. Auf den ersten Blick scheint dies ein ganz triviales Programm zu sein. Aber beachten Sie, auf wie viele unterschiedliche Arten wir die Ausgaberoutine verwenden: In Zeile 5 geben wir eine Zahl aus. In Zeile 6 geben wir einen String aus. In Zeile 7 wird der Inhalt einer int Variable ausgegeben, während in Zeile 8 der Inhalt einer float Variable ausgegeben wird. Schließlich wird in Zeile 9 noch vor der Ausgabe eine Rechnung durchgeführt und erst dann der berechnete Wert ausgegeben. All diese unterschiedlichen Daten müssen von Java auch unterschiedlich behandelt werden mit Strings muß ein Computer ganz anders umgehen als mit Zahlen, und mit ganzen Zahlen vom Typ int muß der Computer ganz anders umgehen als mit reellen Zahlen vom Typ float. Auch muß die Rechnung in Zeile 09 erst vom Computer durchgeführt werden, bevor das Ergebnis ausgegeben werden kann. Ähnlich wie bei im obigen Beispiel bei der Verwendung von System.out.println kann in einem Java Programm an jeder Stelle, wo irgendein Wert stehen kann, auch eine Rechnung oder eine Variable oder sonstetwas stehen, das man auswerten kann. Dabei darf die Auswertung nur Werte der jeweils erlaubten Datentypen ergeben. Definition: Ausdruck Ausdruck Ein Ausdruck ist etwas, das man auswerten kann. Die Auswertung eines Ausdruckes ergibt einen Wert. Der Datentyp dieses Wertes ergibtsichausdemaufbaudesausdrucks.anjederstelle,anderein Wert eines gewissen Datentyps stehen darf, darf auch ein Ausdruck dieses Datentyps stehen. 40

2 Die System.out.println Methode darf man auf all die durch uns demonstrierten Arten verwenden, da sie sowohl Ausdrücke vom Typ int als auch Ausdrücke vom Typ float als auch Ausdrücke vom Datentyp String verarbeiten kann. Sie kann auch Ausdrücke aller anderen Datentypen verarbeiten und ist damit ziemlich einzigartig. Beispiel: Hier ein paar Beispiele für Ausdrücke. Es seien folgende Variablen definiert: int i = 5; float f = 5; String a = "Hallo"; 2 Die Zahl 2 ist ein Zahlenliteral. Jedes Literal ist ein Ausdruck, dessen Datentyp gleich dem Datentyp des Literals ist. Das ganzzahlige Literal 2 ist somit ein Ausdruck mit Wert 2 und Datentyp int 5 Das String Literal "5" ist ein Ausdruck mit Wert "5" und Datentyp String i Auch jede Variable ist ein Ausdruck, deren Wert sich aus dem Inhalt der Variable ergibt. Mit den obigen Definitionen ist dies ein Ausdruck vom Typ int mit Wert 5. f Die Variable f ist hier ein Ausdruck vom Typ float mit Wert 5.0. i + 2 In Ausdrücken können Rechnungen vorkommen. Der Wert einer Rechnung ergibt sich natürlich als Resultat der Rechnung. Dabei sind die Operanden einer Rechnung selbst wieder Ausdrücke. Der Wert der Rechnung i+2 ergibt sich durch Auswerten des Ausdrucks links vom + Zeichen (int mit Wert 5), durch Auswerten des Teils rechts vom + Zeichen (int mit Wert 2) und durch Addition der so ermittelten Werte. Der Datentyp einer Rechnung ergibt sich aus den an der Rechnung beteiligten Datentypen (dazu sagen wir im Kapitel über Typwandlungen mehr). Dieser Ausdruck würde zum Wert 7 ausgewertet und hätte den Typ int, da in der Rechnung nur Ausdrücke vom Typ int vorkommen. a + Welt Auch dies ist ein Ausdruck. Der String a und der String " Welt" werden zusammengehängt. Ergebnis ist ein Ausdruck vom Typ String mit Inhalt "Hallo Welt". i=5 Auch die Zuweisung eines Wertes an eine Variable ist ein Ausdruck. Zwar ist der eigentliche Zweck der Zuweisung, der Variable auf der linken Seite des = Zeichen Variable den Wert des Ausdrucks auf der rechten Seite zuzuweisen. Darüberhinaus ist die Zuweisung in Java aber auch ein Ausdruck, dessen Auswertung den Wert auf der rechten Seite des = Zeichens ergibt (dazu gleich mehr). Beispielsweise gibt das folgende Java Programm den Wert 5 auf den Bildschirm aus und weist der Variable i den Wert 5 zu: public class DemoAssign { public static void main( String[] args ) { int i = 0; System.out.println( i = 5 ); 41

3 System.out.println( i ); 7.2 Literal Ausdrücke Die wohl einfachsten Ausdrücke sind Literale. Ein Literal ist eine konkrete Zahl oder ein konkreter String, der in einem Programmtext auftaucht. Jedes Literal hat einen eindeutig bestimmten Datentyp. Die nächsten Seiten sollen Ihnen eine gewisse Vorstellung davon vermitteln, wie Literale geschrieben werden und welchen Datentyp Java welchen Literalen zuweist Ganzzahlige Literale Es gibt drei Typen von ganzzahligen Literalen: dezimale, oktale und hexadezimale. Sie werden zwar in dieser Veranstaltung weder oktale noch hexadezimale Literale verwenden, es ist aber wichtig, daß Sie wissen, wie man diese Literale schreibt. Es ist nämlich sehr leicht möglich, eine Zahl ausversehen als oktales Literal zu schreiben. Für diese Zahl könnte sich dann ein unerwarteter Wert ergeben. Ein dezimales Literal ist eine Zahl in üblicher dezimaler Darstellung. Ein dezimales Literal darf mit einem Vorzeichen (+ oder ) beginnen und die Ziffern 0 bis 9 enthalten. Der Wert eines dezimalen Literals ist der Wert der angegebenen Zahl. Beispiel: Die folgenden Werte sind dezimale Literale: 1, 2, 3, +4, -5, +100, , Eine ganze Zahl wird in einem Java Programmtext immer dann als oktales Literal interpretiert, wenn nach dem optionalen Vorzeichen eine führende Null steht. Nach der führenden Null darf ein oktales Literal nur die Ziffern 0 bis 7 enthalten. Der Wert eines oktalen Literals ergibt sich, indem die oktale Zahl umgerechnet wird. Dezimales Literal oktales Literal Beispiel: Im oktalen Zahlensystem gibt es nicht wie im dezimalen Zahlensystem 10 sondern nur 8 Ziffern. Wenn man im oktalen Zahlensystem von 0 bis 16 zählt, sieht das so aus: 00, 01, 02, 03, 04, 05, 06, 07, 010, 011, 012, 013, 014, 015, 016, 017, 020 Die oktale Zahl 010 entspricht also der dezimalen Zahl 8. Die oktale Zahl 0123 entspricht der dezimalen Zahl 83. Weitere Beispiele für oktale Zahlen sind: -033, +071, Da in einer oktalen Zahl keine Ziffern außer 0 bis 7 vorkommen dürfen, ergibt die folgende Zeile einen Fehler beim kompilieren: int i = 0129; // Fehler Wenn eine ganze Zahl nach dem optionalen Vorzeichen mit dem Text 0x oder 0X beginnt, wird sie von Java als hexadezimales Literal interpretiert. Ein hexadezimales Literal darf die Ziffern 0 9 und die Buchstaben A bis F enthalten hexadez. Literal 42

4 (die Buchstaben dürfen dabei klein oder groß geschrieben werden). Der Wert eines hexadezimalen Literals ergibt sich durch Umrechnung der hexadezimalen Zahl. Beispiel: Im hexadezimalen Zahlensystem gibt es nicht wie im dezimalen Zahlensystem 10 sondern ganze 16 Ziffern (die Ziffern 0-9 und die Buchstaben A-F). Wenn man im hexadezimalen Zahlensystem von 0 bis 18 zählt, sieht das so aus: 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xA, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12 Die hexadezimale Zahl 0xB entspricht also der dezimalen Zahl 11. Die hexadezimale 0xff entspricht der dezimalen Zahl 255. Die hexadizimale Zahl 0x100 entspricht der dezimalen Zahl 256. Weitere Beispiele für hexadezimale Zahlen: 0xaf, 0X1AfAF, -0xff, -0xfF Ein ganzzahliges Literales ist immer vom Typ int, es sei denn, man hängt den Buchstaben L an. In diesem Fall erhält es den Datentyp long. Es stellt sich natürlich die Frage, warum man überhaupt ganzzahlige Literale vom Typ int und Typ long unterscheidet. Der Datentyp long umfaßt doch den Datentyp int, und daher sollte doch eigentlich der Datentyp long ausreichen, um alle ganzen Zahlen zu repräsentieren. Der Grund, warum es dennoch den Datentyp int gibt, wird im nächsten Kapitel über Typkonvertierungen klar werden. Hier sei nur gesagt, daß Sie dort erfahren werden, daß es zwar gestattet ist, einer long Variable einen Ausdruck vom Typ int zuzuweisen, daß es jedoch nicht gestattet ist, einer int Variable einen Ausdruck des Typs long zuzuweisen. Das folgende Programmfragment enthält daher auf Zeile 3 und 4 Fehler: Datentyp ganzzahliger Literale int i = 5; long m = i; int j = 5L; // Fehler! int k = m; // Fehler! Würde Java nun auch die Zahlen, hinter denen kein L steht, als long Literale interpretieren, so wäre auch die erste Zeile des obigen Programmfragmentes ungültig, und um dies zu vermeiden, gibt es für ganzzahlige Literale diese Unterscheidung in die zwei Datentypen int und long. Beispiel: Beispiele für Literale: 123 Dezimales Literal, Wert 123, Typ int 123L Dezimales Literal, Wert 123, Typ long 0123 Oktales Literal, Wert 83, Typ int 0123L Oktales Literal, Wert 83, Typ long 0xFF Hexadezimales Literal, Wert 255, Typ int Reellwertige Literale Alle in einem Java Programm auftretenden Zahlen mit Dezimalpunkt oder Zehnerexponenten sind rellwertige Literale. 43

5 Ein reellwertiges Literal besteht aus dem ganzzahligen Teil vor dem Dezimalpunkt, dem Nachkommateil und einem optionalen Zehnerexponenten. Der Zehnerexponent wird durch den Buchstaben E oder e eingeleitet. Der Exponent darf negativ sein. Beachten Sie bitte, daß in Java der Dezimalpunkt nicht wie in Deutschland üblich ein Komma ist, sondern ein Punkt ist. Reelle Zahlen haben in Java normalerweise den Datentyp double. Wenn Sie hinter die Zahl den Buchstaben f oder F anhängen, erhält das Literal den Typ float. Optional dürfen Sie auch ein d oder D anhängen, aber auch dann erhält die Zahl den Datentyp double. Beispiel: Beispiele für reellwertige Literale 1. Die Zahl 1.0, Datentyp double 1.f Die Zahl 1.0, Datentyp float.1d Die Zahl 0.1, Datentyp double 1.0E0 Die Zahl 1.0, Datentyp double 1e5 1e5f Die Zahl , Datentyp double Die Zahl , Datentyp float Die Zahl , Datentyp double 4.10E-10 Die Zahl , Datentyp double 4.10E-10f Die Zahl , Datentyp float Beachten Sie bitte, daß Sie an einer Stelle im Programmtext, wo ein Ausdruck vom Typ double erwartet wird, zwar einen Ausdruck vom Typ float verwenden dürfen. Sie dürfen jedoch an einer Stelle, wo ein Ausdruck vom Typ float erwartet wird, keinen Ausdruck vom Typ double verwenden. Warum das so ist, erklären wir im nächsten Kapitel über Typwandlungen. Beispiel: Das folgende Programmfragment enthält daher auf Zeilen 3 und 4 Fehler. double d1 = ; // erlaubt: Zuweisung double an double double d2 = 2.1f; // erlaubt: Zuweisung float an double float f1 = d1; // Fehler: Zuweisung double an float float f2 = ; // Fehler: Zuweisung double an float float f3 = f;// erlaubt: Zuweisung float an float Litarale vom Typ boolean Es gibt zwei boolsche Literale, nämlich true und false. Beide haben den Datentyp boolean. Beispiel: Ein Beispiel zu Ihrer Verwendung: public class DemoBoole { public static void main( String[] args ) { boolean b1 = true; boolean b2 = false; 44

6 Das Literal true steht für logisch wahre Werte und das Literal false steht für logisch falsche Werte. Beispiel: Hier ein paar Beispiele für Ausdrucke, die in der Auswertung true oder false ergeben: 1 < 2 // Ausdruck vom Typ boolean, Wert : true 2 < 1 // Ausdruck vom Typ boolean, Wert : false 2 <= 2 // Ausdruck vom Typ boolean, Wert : true 2 > 2 // Ausdruck vom Typ boolean, Wert : false Zeichenliterale Zeichenliterale bestehen aus einem einzelnen Zeichen in einfachen Hochkommata. Der Datentyp eines Zeichenliterals ist char, und der Wert des Zeichenliterals ist eine Zahl zwischen 0 und 65535, welche sich aus dem Unicode Zeichensatz ergibt. Beispiel: Beispiele für char Literale sind a, B, #, +, 1. Folgende Texte sind keine gültigen Zeichenliterale, da sie nicht genau ein Zeichen enthalten:, aa, 12. Unicode ist ein Zeichensatz, in dem jedes Zeichen durch eine 16 Bit Zahl dargestellt wird. Es können also maximal verschiedene Zeichen dargestellt werden können. Jedem Zeichen wird dabei eine eindeutige Zahl zwischen 0 und zugeordnet. Zum Beispiel ist dem Buchstaben a die Zahl 97, dem Buchstaben A die Zahl 65 und der Ziffer 1 die Zahl 49 zugeordnet. Zeichen im Unicode Zeichensatz sind Buchstaben, Zahlen und alle anderen Sonderzeichen, die der Computer darstellen kann sowie einige Zeichen mit besonderer Bedeutung wie Tabulator, Zeilenumbruch oder Rückschritt (Backspace). In sind Unicode auch Buchstaben anderer Länder (etwa japanische Schriftzeichen) oder sonstige normalerweise nicht verwendete Zeichen vorgesehen. Unicode Beispiel: Folgendes Programm gibt die Zeichen a, B und # und die diesen zugeordneten Zahlenwerte aus. Um die Unicode Zahlenwerte der Zeichen auszugeben, ist es nötig, die Zeichen in einen anderen Datentyp als char umzuwandeln (hier int). Die Ausgaberoutine System.out.println gibt nämlich Werte des Datentyps char nicht als Zahl sondern als Zeichen aus. public class DemoChar { public static void main( String[] args ) { char a = a ; // a ist ein char-literal mit Wert 97 char b = B ; // b ist ein char-literal mit Wert 66 char x = # ; // # ist ein char-literal mit Wert 35 int ia = a; // Umwandlung des Datentyps int ib = b; int ix = x; System.out.println( a ); // Ausgabe des Zeichens System.out.println( ia );// Ausgabe seines Zahlenwertes System.out.println( b ); 45

7 System.out.println( ib ); System.out.println( x ); System.out.println( ix ); Es gibt einige besondere Zeichen, die man mit der Tastatur nicht so einfach angeben kann. Dazu gehört beispielsweise der Zeilenumbruch. Diese Sonderzeichen kann man eingeben, indem man eine sogenannte Escape Sequenz verwendet. Eine Escape Sequenz wird durch das Zeichen \, den Backslash, eingeleitet. Immer wenn ein Zeichenliteral mit einem Backslash beginnt, werden die auf den Backslash folgenden Zeichen interpretiert, um den Wert des Zeichens zu ermitteln. Welche Escape Sequenzen es gibt, ist in Go To Java 2 in Tabelle 4.2 beschrieben. Den Backslash selbst ist durch \\ gegeben. Beispiel: Die folgenden Ausdrücke sind Zeichenliterale. Obwohl wir zur Angabe des Zeichens mehr als ein Zeichen benötigen, wird das Literal nur als ein Zeichen interpretiert: \n (Zeilenumbruch), \t (Tabulator), \\ (der Backslash \), \u0020 (Leerzeichen). Beispiel: Das folgende Programm verwendet Escape Sequenzen, um das Zeichen a, zwei Leerzeilen (eine Leerzeile entsteht durch das Zeichen \n und eine entsteht dadurch, daß die Ausgaberoutine selbst immer noch einen Zeilenumbruch einfügt) und danach den Backslash darzustellen. public class DemoEscape { public static void main( String[] args ) { System.out.println( a ); System.out.println( \n ); // zwei Leerzeilen System.out.println( \\ ); // Ausgabe des Backslash Zeichenketten Als letzte Art von Literalen sind sind schließlich noch die Zeichenketten zu erwähnen. Eine Zeichenkette ist ein Text in doppelten Hochkommata. Eine Zeichenkette hat den Datentyp String, und ihr Wert ist die Zeichenfolge zwischen den doppelten Hochkommata. Zwischen den doppelten Hochkommata ist jedes Zeichen erlaubt, das auch in einem Zeichenliteral verwendet werden könnte. Insbesondere können in einer Zeichenkette auch die Escape Sequenzen verwendet werden, die bei Zeichenliteralen eingesetzt werden konnten. Zeichenketten unterscheiden sich deutlich von allen anderen bisher behandelten Literalen. Alle Literale waren bisher einfache Zahlen. Eine Zeichenkette ist aber eine Folge von Zahlen. Beispiel: Einige Beispiele zur Verwendung von Zeichenketten: public class DemoString1 { 46

8 public static void main( String[] args ) { String hacker = "Neo"; System.out.println( hacker ); System.out.println("Ein Backslash: \\"); System.out.println("Neue\nZeile\nund"); System.out.println("Ein Anführungszeichen: \""); Eine Zeichenkette muß in der Zeile beendet werden, in der sie begonnen wurde. Will man eine Zeichenkette konstruieren, die länger ist, so kann den + Operator verwenden. Immer wenn zwischen zwei Zeichenketten ein + steht, entsteht durch Aneinanderhängen der beiden ursprünglichen Zeichenketten eine längere Zeichenkette. Beispiel: So kann man eine längere Zeichenkette bauen: public class DemoString2 { public static void main( String[] args ) { System.out.println("Hallo, " + "Welt"); System.out.println( "Um eine längere Zeichenkette" + " zu bauen,\n kann man den +-Operator" + " benutzen. Man darf Zeichenketten \n" + " fast beliebig lang machen."); Beispiel: Dies Programm enthält einen Fehler, da eine Zeichenkette nicht in der Zeile beendet wird, in der sie begonnen wurde: public class DemoString3 { public static void main( String[] args ) { System.out.println("Hallo, Welt"); // Fehler! 7.3 Verwendung von Variablen Nachdem Sie nun die allereinfachste Art von Ausdrücken nämlich die Literale kennengelernt haben, soll die nächsteinfache Klasse von Ausdrücken besprochen werden, nämlich die Variablen. Sie erinnern sich eine Variable ist ein Platzhalter für irgendeinen Wert. Wenn eine Variable in einem Ausdruck auftaucht, wird bei der Auswertung des Ausdrucks für die Variable ihr Inhalt eingesetzt. Selbstredend ist der Datentyp eines Variablen Ausdrucks der Datentyp der Variable. Beispiel: Im folgenden Programm wird in Zeile 03 eine Variable definiert, und ihr wird der Wert 1 zugewiesen. In Zeile 04 wird die Ausgaberoutine System.out.println aufgerufen. Als auszugebender Wert wird ihr der Ausdruck i + 1 übergeben. Dieser Ausdruck hat den Datentyp int, da hier eine int-variable zu einem int Literal addiert wird. Der Wert des Ausdrucks ist der Wert der Variable i (also 1) plus dem Wert des Integerliterals 1. 47

9 01 public class DemoVar1 { 02 public static void main( String[] args ) { 03 int i = 1; 04 System.out.println( i + 1 ); Der erstmaligen Wertzuweisung einer Variable nach ihrer Definition kommt eine besondere Bedeutung zu, und gibt es dafür einen besonderen Namen: Initialisierung. Die Bedeutung der Initialisierung liegt darin, daß eine Variable bis zur Initialisierung einen unbestimmten Wert enthält. Natürlich enthält eine Variable von dem Moment an, in dem sie definiert wurde, immer irgendeinen Wert. Mit einer Variable ist ja immer ein gewisser Teil des Arbeitsspeichers assoziiert, und der Wert der Variablen ergibt aus diesem Teil des Arbeitsspeichers. Man hat aber keinerlei Kontrolle darüber, welchen Wert der Arbeitsspeicher einer neu definierten Variable enthält. Es geht somit nicht aus dem Programmtext hervor, welchen Wert eine Variable bei ihrer Definition erhält, und daher nennt man Variablen, denen noch kein Wert zugewiesen wurde, nicht initialisiert oder sagt, sie hätten einen unbestimmten Wert. Da man einer Variable nur dann einen Wert zuweisen darf, wenn dem Compiler der Datentyp der Variable klar ist, darf man eine Variable nur nach oder während ihrer Definition initialisieren. Initialisierung Beispiel: Im folgenden Beispiel wird eine Variable als int definiert. In der nächsten Zeile wird sie zu 2 initialisiert: int einint; einint = 2; Man kann Definition und Initialisierung auch mit einem Befehl erledigen: int einint = 2; Hingegen ist die folgende Anweisungen kein gültiger Java Code, da eine Variable nicht vor ihrer Definition initialisiert werden darf: { einint = 2; int einint; Da eine Variable vor ihrer Initialisierung einen undefinierten Wert enthält und da die Verwendung undefinierter Werte normalerweise ein Fehler ist, kontrolliert der Java Compiler bei jeder Verwendung einer Variable, ob sie bereits initialisiert sein kann. Falls der Compiler die Verwendung einer nichtinitialisierten Variable erkennt, meldet er einen Fehler und schützt so den Programmierer vor der Verwendung undefinierter Werten. Beispiel: Der Compiler würde im folgenden Programm erkennen, daß bei der Initialisierung der Variable ergebnis die uninitialisierte Variable wert verwendet wird. Daher würde er das folgende Programm nicht akzeptieren: 48

10 public static void main(string[] args) { int wert; int ergebnis = wert * 3; // Fehler In Go To Java, Kapitel 5.1 ist das genauer ausgeführt. 7.4 Ausdrücke mit Operatoren Neben der Verwendung von Literalen und Variablen gibt es in einem Java Programm auch komplexer aufgebaute Ausdrücke man kann mit Variablen oder Literalen rechnen, Variablen oder Literale miteinander vergleichen. Da sich bei einer solchen Rechnung oder einem Vergleich wieder irgendein Wert ergibt, sind auch Rechnungen und Vergleiche Ausdrücke. Auch Zuweisungen an Variablen sind Ausdrücke, da in Java auch die Zuweisung einen Wert ergibt. Jeder komplexe Ausdruck kombiniert mit Hilfe von Rechenoperatoren, Vergleichsoperatoren oder Zuweisungsoperatoren andere Ausdrücke zu einem neuen Wert. Es gibt Operatoren, die nur auf einen einzigen Ausdruck operieren, es gibt aber auch Operatoren, die zwei Ausdrücke zu einem neuen Resultat verbinden. Es gibt sogar einen Operator, der drei Ausdrücke kombiniert. Die Anzahl der Ausdrücke, auf die ein Operator angewendet wird, um ein Ergebnis zu liefern, nennt man die Stelligkeit des Operators. Stelligkeit Beispiel: Hier einige Beispiele für 1 stellige Operatoren. Aus der Mathematik kennen Sie den Fakultät Operator und den Quadrierungsoperator es gibt beide nicht in Java, aber da Sie Ihnen vertraut sind, verwenden wir sie in diesem Beispiel. Beide Operatoren kann an auf einen einzigen Ausdruck anwenden. Dabei stehen diese Operatoren hinter dem Ausdruck, auf den sie angewendet werden. Die folgenden Ausdrücke sind Beispiele für die Verwendung eines einstelligen Operators, der hinter dem Ausdruck steht: 5!, 5 2, (1+2)!, (1+2!) 2 Sie kennen außerdem das 1 stellige Minus, welches das Vorzeichen eines Ausdrucks umdreht. Es steht vor dem Ausdruck, auf das es angewandt wird zum Beispiel 5, ( 3+3), (3 2) 2 Beispiel: Am häufigsten werden 2 stellige Operatoren verwendet. Zweistellige Operatoren kombinieren zwei Ausdrücke zu einem neuen Wert und stehen normalerweise zwischen den beiden zu verwendenden Ausdrücken. Hier ein paar Beispiele, in denen nur zweistellige Operatoren auftauchen: 5 3, (3+2) (3+1), 2+3 Beachten Sie, daß es zwei Minus Operatoren gibt: Das 1 stellige Minus, das den folgenden Ausdruck negiert sowie das 2 stellige Minus, das zwei Ausdrücke voneinander substrahiert. Jeder komplexe Ausdruck mit einem 1 stelligen Operator hat entweder die Form 49

11 Ausdruck Operator Operator Ausdruck Derartige Operatoren nennt man auch Postfix Operatoren, da sie hinter dem Ausdruck stehen, auf den sie angewandt werden. Beispiele für Einstellige Postfix Operatoren sind der Quadrat Operator oder der Fakultät Operator. Einen Operator, der vor dem Ausdruck steht, auf den er angewendet wird, nennt man auch Präfix Operatoren. Beispiele für 1 stellige Präfix Operatoren sind das 1 stellige Minus oder der Wurzeloperator. Ausdrücke mit 2 stelligen Operatoren haben immer die Form Ausdruck 1 Operator Ausdruck 2 Da hier der Operator zwischen den Ausdrücken steht, nennt man derartige Operatoren auch Infix Operatoren. Beispiele für zweistellige Infix Operatoren sind +,,,/. Sie kennen nun Ausdrücke, die aus einem Literal bestehen, Ausdrücke, die aus einer Variable bestehen und Ausdrücke, in denen einstellige und zweistellige Operatoren auftauchen. Durch diese Möglichkeiten, Ausdrücke aufzubauen, sind bereits fast alle erdenklichen Rechnungen in Java formulierbar. Wir haben die Operator Ausdrücke nämlich rekursiv, das heißt selbstbezüglich, definiert. So hat ja ein zweistelliger Ausdruck die Form Ausdruck 1 Operator Ausdruck 2 Die beiden Ausdrücke Ausdruck 1 und Ausdruck 2 können nun selbst wieder beliebigeausdrückesein.beispielsweisekönnteausdruck 1 einzweistelligeroperator Ausdruck mit einem anderen Operator sein, und Ausdruck 2 könnte ein einstelliger Präfix Ausdruck sein. Wir haben also schon Ausdrücke der Form (Ausdruck 1,1 Operator Ausdruck 1,2 ) Operator Prefix Ausdruck 2,1 beschrieben. Analog kann man beliebig komplizierte Rechnungen durch wiederholtes Anwenden der Operator Ausdruck Regeln als Ausdruck beschreiben. Beispiel: Zum Beispiel kann die Rechnung a+5+6 auf zwei verschiedene Arten als Ausdruck interpretiert werden. Beide Arten der Interpretation lassen sich durch Graphiken interpretieren lassen, die einem auf den Kopf gestellten Baum ähneln: Zum einen ist die Rechnung als + Ausdruck a + (5 + 6) interpretierbar, + also als Ausdruck, in welchem durch den Plus Operator der Ausdruck Variable a int-literal 5 int-literal 6 a und der Ausdruck 5+6 ad- diert werden. Variable a + + int-literal 5 int-literal 6 Alternativ könnte sie als Ausdruck (a+5) +6 interpretiert werden, also als Ausdruck in welchem durch den Plus Operator der Ausdruck a + 5 und der Ausdruck 6 addiert werden. 50

12 Beispiel: Operator * Operator - Präfixopt - Postfixopt.! int-literal 5 Variable a Variable b Die Rechnung ( 5) (a! b) läßt sich nur auf eine Art als Ausdruck interpretieren. Die graphische Darstellung der einzig möglichen Interpretation sehen Sie links. Die obenstehenden Beispiele zeigen, daß man einen Ausdruck manchmal auf mehrere Arten aus kleineren Ausdrücke zusammensetzen kann. Dabei entspricht jede Art, den Ausdruck zusammenzusetzen, einer unterschiedlichen Klammerung. Selbstverständlich entspricht nicht jede Art und Weise, den Ausdruck in kleinere Einheiten aufzubrechen der mathematischen Gewohnheit. Beispiel: Es macht für die Rechnung zwar keinen Unterschied, ob der Ausdruck a+5+6 als a+(5+6) oder als (a+5)+6 interpretiert wird. Es macht aber sehr wohl einen Unterschied, ob der Ausdruck a 5+6 als a (5+6) oder als (a 5)+6 interpretiert wird. Genauso macht es einen Unterschied, ob der Ausdruck a 5+6 als a (5+6) oder als (a 5)+6 interpretiert wird. Um jedem Ausdruck einen eindeutigen Wert zuzuteilen, hat man in der Mathematik vereinbart, daß man Ausdrücke von links nach rechts lesen soll der Ausdruck a 5 6 wird als (a 5) 6 interpretiert. Außerdem hat man Rechenregeln wie Punkt vor Strichrechnung eingeführt. Es ist in der Mathematik auch üblich, daß Einstellige Postfixoperatoren zweistelligen Operatoren vorgehen der Ausdruck a+5! wird deshalb nicht als (a+5)! sondern als a+(5!) interpretiert. Auch in Java werden die üblichen Rechenregeln beachtet. In Java haben die einzelnen Operatoren unterschiedliche Bindungskraft. Wenn in einem Ausdruck ein Operator mit höherer Bindungskraft neben einem mit niedrigerer Bindungskraft steht, so zieht der Operator mit der höheren Bindungskraft die daneben stehenden Ausdrücke an sich. Beispiel: Beispielsweise hat der Multiplikationsoperator eine höhere Bindungskraft als der Additionsoperator. Daher wird durch Java der Ausdruck a+5 6 nicht als (a+5) 6 sondern als a+(5 6) interpretiert auch in Java geht also die Multiplikation der Addition vor. Generell gilt, daß Einstellige Operatoren eine höhere Bindungskraft haben als zweistellige Operatoren. Beispiel: Das einstellige Minus hat eine höhere Bindungskraft als der zweistellige Multiplikationsoperator. Daher wird der Ausdruck 2+5 nicht als (2+5) sondern als ( 2)+5 interpretiert. Eine Tabelle, in der alle Java Operatoren nach Bindungskraft geordnet aufgeführt sind, finden Sie in Go To Java in Kapitel 5.8 (Operator Vorrangregeln). Es empfiehlt sich, diese Tabelle auszudrucken Sie werden sie in der 4. Hausaufgabe benötigen. Jeder in der Tabelle stehende Operator hat höhere Bindungskraft als die später in der Tabelle stehenden Operatoren. Ein Verständnis der Vorrangsregeln ist sehr wichtig wenn Sie sich allerdings irgendwann mal nicht sicher sind, wie die Auswertereihenfolge eines Ausdrucks 51

13 ist, können Sie ganz einfach Klammern verwenden, um die Ausdrücke zusammenzufassen: Beispiel: Wenn Sie sich nicht sicher sind, ob die Vergleichsoperatoren höhreren Vorrang als die Logik Operatoren haben, könnten Sie statt boolean w = 1 < 2 && 2 < 3 && 4 < 5; auch schreiben boolean w = (1 < 2) && (2 < 3) && (4 < 5); Arithmetische Operatoren Die arithmetischen Operatoren Javas sind in Go To Java 2 in Kapitel 5.2 angeführt. Zu den Operatoren ++ und -- sagen wir gleich mehr, zu den anderen Operatoren in Kapitel 5.2 gibt es nichts hinzuzufügen außer einem Beispiel: Beispiel: Verwendung der arithmetischen Operatoren: 01 public class DemoArith { 02 public static void main( String[] args ) { 03 System.out.println( ); 04 System.out.println( 2.0 / * 7.1 ); 05 System.out.println("7 / 3 = " + 7 / 3 + ", Rest: " + 7 % 3 ); 06 System.out.println( 7.2 % 3 ); In Zeile 03 wird das einstellige Minus, das (eigentlich überflüssige) einstellige Plus und das zweistellige Minus verwendet. In Zeile 04 werden der Multiplikations und Divisionsoperator verwendet. In Zeile 05 werden zwei Integerzahlen dividiert (7/3 == 2). Dabei bleibt ein Rest von 1 übrig. Auch der Rest der Division wird ausgegeben. Der Rest bei ganzzahliger Division Operator heißt %. In Zeile 06 wird demonstriert, daß man den Restwert Operator in Java auch auf reelle Zahlen anwenden kann Inkrement und Dekrement Operatoren Die üblichen Rechenoperatoren wie +,-,*,/,% bedürfen sicher keiner weiteren Erläuterung. Hingegen wird auf die Inkrement und Dekrement Operatoren von Java im Text Go To Java 2 leider nur mangelhaft eingegangen. Der Operator ++ wird Inkrement Operator, der Operator -- wird Dekrement Operator genannt. Sie unterscheiden sich deutlich von den anderen arithmetischen Operatoren, da sie nicht nur einen Wert berechnen, sondern gleichzeitig als Nebeneffekt auch eine Variable verändern. Sie können den Wert einer Variable um eins erhöhen, indem Sie entweder vor oder hinter die Variable den Operator ++ setzen. Analog können Sie durch Verwendung des Operators -- den Wert einer Variable um eins verminden. Inkrement und Dekrement Operator existieren in jeweils zwei verschiedenen Versionen: einmal als Präfix und einmal als Postfix Operator. 52

14 Steht ++ vor einer Variable, wie in int einint = 5; ++einint; so heißt er Präinkrement Operator Steht ++ hinter einer Variable wie in double eindouble = ; eindouble++; so heißt er Postinkrement Operator Analog heisst der-- Operator entweder Prädekrement bzw. Postdekrement Operator, wenn er vor bzw. hinter einer Variable steht. Inkrement und Dekrement Operatoren verändern den Wert einer Variable, selbst wenn überhaupt keine Zuweisung verwendet wird. Dabei liefern sie wie alle Ausdrücke gleichzeitig einen Wert. Im folgenden reden wir nur noch vom Inkrement Operator. Für den Dekrement Operator gilt alles analog. Beispiel: Zum Beispiel wird in folgendem Beispiel der Wert der Variable einint zweimal erhöht, wobei einmal der Postinkrement- und einmal der Präinkrement-Operator verwendet wird. Der Wert der Ausdrücke wird dabei nicht verwendet. int einint = 5; einint++; ++einint; Der Postinkrement Operator und der Präinkrement Operator erhöhen beide die Variable und liefern als Wert den Wert der Variable zurück. Dabei unterscheiden sie sich dadurch, wann die Variable inkrementiert wird. Wird der Postinkrement Operator verwendet, so wird zuerst der Wert der Variable ausgewertet und anschließend die Variable inkrementiert. Wenn hingegen der Präinkrement Operator benutzt wird, wird zuerst die Variable inkrementiert und anschließend die nun inkrementierte Variable ausgewertet. Beispiel: Zum Beispiel hat nach Ausführung des folgenden Programmtextes die Variable wert den Wert 7, da sie zweimal inkrementiert wurde. public class DemoInc1 { public static void main( String[] args ) { int wert = 5; int ergebnis1 = wert++; int ergebnis2 = ++wert; 53

15 Aber welchen Wert haben ergebnis1 und ergebnis2? Entscheidend hierfür ist, ob zuerst die Zuweisung oder zuerst das Inkrementiern stattfindet. Nach unserer Beschreibung des Prä und Postinkrementoperators ist das obige Programm gleichwertig zu folgendem Programmfragment: public class DemoInc2 { public static void main( String[] args ) { int wert = 5; int ergebnis1 = wert; wert = wert + 1; // Ausführung des Postinkrementoperators wert = wert + 1; // Ausführung des Präinkrementoperators int ergebnis2 = wert; Nach Ausführung des vorigen Beispiels haben also die einzelnen Variablen folgende Werte: wert == 5 ergebnis1 == 5 ergebnis2 == 7 Es sei hier erwähnt, daß Sie die Verwendung der Postinkrement und Präinkrementoperatoren in komplizierten Ausdrücken vermeiden sollten, da die durch sie bewirkten Nebeneffekte oft nur schwer zu verstehen sind. Beispiel: Erkennen Sie zum Beispiel, welche Werte die Variablen im folgenden Programm erhalten? int i1 = 3; int i2 = 4; int ergebnis = ++i1 + --i2 + i1-- * --i2; Ich glaube, einfacher zu verstehen ist die äquivalente Fassung: int i1 = 3; int i2 = 4; i1--; i2--; ergebnis = i1 + i2 + i1 * i2; i1++; i2--; Die Verwendung der Dekrement und Inkrementoperatoren empfiehlt sich, wenn Sie eine Variable dekrementieren oder inkrementieren möchten. Insbesondere wenn Ihre Variablennamen lang sind, sparen Sie sich so Schreibarbeit und Fehlerquellen und machen Ihr Programm übersichtlicher. Beispiel: Ich hoffe, Sie stimmen mir zu, daß der Programmtext einfurchtbarlangervariablenname++; besser zu lesen ist, als der Programmtext 54

16 einfurchtbarlangervariablenname=einfurchtbarlangervariablenname+1; Schließlich sei noch erwähnt, daß die Inkrement und Dekrementoperatoren ausschließlich auf Variablen anwendbar sind. Das sollte eigentlich klar sein, da man auch nur Variablen einen Wert zuweisen kann. Beispiel: Die folgende Anweisungsfolge ist ungültig: int a=5; int b=(a*2)++; // Fehler: Zwischenergebnisse kann man nicht verändern Auch die folgende Anweisungsfolge ist ungültig: int a=5++; // Fehler: Literale kann man nicht verändern Relationale Operatoren Kapitel 5.3 in Go To Java bedarf m.e. keiner weiteren Erklärung es sei nur gesagt, daß Sie alles, was mit Referenztypen zu tun hat, noch nicht verstehen können und auch nicht verstehen müssen. Relationale Operatoren vergleichen zwei Werte. Ein relationaler Ausdruck hat immer den Datentyp boolean, liefert als entweder den Wert true oder false zurück. Beispiel: Hier ein Beispiel zur Verwendung relationaler Operatoren: public class DemoRelational { public static void main( String[] args ) { double w1 = 5; double w2 = 6; System.out.println( w1 < w2 ); // ergibt true System.out.println( w1 == w2 ); // ergibt false System.out.println( w1!= w2 ); // ergibt true System.out.println( w1 == w2-1); // ergibt true System.out.println( w1 * 5 >= w2-1);// ergibt true Logische Operatoren Auch zu Kapitel 5.4 über logischen Operatoren ist nicht viel hinzuzufügen. Logische Operatoren kombinieren zwei Ausdrücke vom Typ boolean zu einem neuen Wert des Datentyps boolean. Sie dienen dazu, Wahrheitswerte zu vergleichen und kombinieren. Beispiel: Hier noch ein Beispiel zur Verwendung der logischen Operatoren: public class DemoLogic1 { public static void main(string[] args) 55

17 { System.out.println( true && true ); System.out.println( false & true ); System.out.println( false true ); System.out.println( false false ); System.out.println(! false ); System.out.println(! true ); // true // false // true // false // true // false Beispiel: Noch ein Beispiel zur Verwendung der logischen Operatoren: public class DemoLogic2 { public static void main(string[] args) { long a = 3; long b = 4; boolean w1 = a >= 3 && a < 5; // true boolean w2 = a == 4 b == 4; // true boolean w3 = a >= 3 && ( a==4 b == 4); // true boolean w4 =!(a == 3); // false Normalerweise sollten Sie die Short Circuit Operatoren(siehe Go To Java, Kap. 5.4) verwenden. Problematisch kann das werden, wenn in einem logischen Ausdruck Nebeneffekte (d.h. Veränderungen von Variablen) auftreten. Beispiel: Hier ein warnendes Beispiel zur Short Circuit Evaluation. public class DemoShortCircuit { public static void main(string[] args) { long a = 3; System.out.println( a > 4 && a++ < 5 ); System.out.println(a); In der Auswertung a > 4 && a++ < 5 wird der Teil hinter der logischen Und Verknüpfung nicht ausgeführt, weil das Ergebnis des gesamten Ausdrucks (false) nach Auswertung von a > 4 klar ist (false && irgendwas ist immer false). Daher wird aber auch der Postinkrement Operator nicht ausgeführt. Der Wert von a ändert sich daher im obigen Beispiel nicht. Üblicherweise verwendet man immer die Short-Circuit Operatoren. Gewöhnen Sie sich daher an, niemals Operatoren mit Nebeneffekten in logischen Ausdrücken zu verwenden! Bitweise Operatoren Kapitel 5.5 in Go To Java 2 bedarf m.e. keiner weiteren Erläuterung, wenn Sie sich mit Binärzahlen auskennen. 56

18 7.4.6 Zuweisungsoperatoren Auch Kapitel 5.6 in Go To Java 2 benötigt m.e. kaum weitere Erläuterungen. Eine Besonderheit von Java ist, daß Zuweisungen einen Wert zurückliefern. Der Zuweisungsoperator ist in Java ein Operator, der prinzipiell überall dort eingesetzt werden kann, wo Sie auch eine Addition oder Multiplikation durchführen würden. Nur haben Zuweisungsoperatoren einen Nebeneffekt, nämlich die Zuweisung eines Wertes an eine Variable. Beispiel: Es ist möglich, mehrere Zuweisungen in einem Befehl durchzuführen. Zum Beispiel wird hier den Variablen a und b der Wert 5 zugewiesen: int a; int b = a = 5; Das funktioniert so: Der Compiler erkennt, daß der Variable b der Wert zugewiesen wird, der rechts vom ersten Gleichheitszeichen steht. Zunächst wird der Ausdruck daher als int b = (a = 5); interpretiert. Dann wertet Java den Ausdruck (a = 5) aus, weist dabei der Variable a den Wert 5 zu und liefert als Ergebnis des Ausdrucks a = 5 den Wert 5. Dieser wird dann der Variablen b zugewiesen. Sie können innerhalb jeder Rechnung Zuweisungen vornehmen. Achten Sie dabei darauf, daß Ihre Programme lesbar bleiben. Beispiel: Finden Sie den folgenden Programmtext übersichtlich? int a; int b; int c = 5 * (b = 6 - (a = 5) * 20); Nur, weil diese Anweisungen erlaubt sind, sollten Sie sie nicht verwenden. Übersichtlicher hätte man dieses Programmfragment schreiben können als int a = 5; int b = 6 - a * 20; int c = 5 * b; Sehr hilfreich sind die Zuweisungsoperatoren, die bei der Zuweisung noch rechnen. Beispiel: Zum Beispiel kann man statt einrelativlangervariablenname=einrelativlangervariablenname+5; auch schreiben einrelativlangervariablenname += 5; 57

19 Die zweite Schreibweise ist besser lesbar und weniger fehleranfällig. Analog können Sie die Operatoren *=,-=,/= und die übrigen Zuweisungsoperatoren verwenden. Auch die rechnenden Zuweisungsoperatoren können genau wie die Inkrement, Dekrement und Zuweisungsoperatoren in jedem Ausdruck verwendet werden. Beispiel: Zum Beispiel: int a = 5; int b = 3; int c = 6 * (a += 5) - (b *= 2); Auch hier gilt: Achten Sie primär auf gute Lesbarkeit Ihres Programms und nicht auf ausgefallene oder trickreiche Verwendung dieser Operatoren. Beispiel: Hier noch ein Beispiel, in welchem Zuweisungsoperatoren mißbraucht werden. Dies ist gültiger Java Code, aber wer derartigen Code verwendet, disqualifiziert sich als übler Hacker: int a = 5; int b = 3; int c = 6 * (b += (a -= ((a += 5) - (b *= 2)))); Weitere Operatoren Zu Kapitel 5.7 von Go To Java: Die Type Cast Operatoren hatten wir bereits im vorigen Kapitel besprochen. Die Ausführungen zu Strings sollten Sie überfliegen. Die Ausführungen zu Referenzgleichheit und zu den anderen Operatoren brauchen Sie noch nicht zu verstehen. 58

20 7.5 Zusammenfassung Sie müssten nun die folgenden Fragen beantworten können: Was ist ein Ausdruck? Welches sind die relevanten Eigenschaften eines Ausdrucks? Was für Arten von Ausdrücken kennen Sie? Was ist ein Literal? Welche ganzzahligen Literale kennen Sie? Welchen Wert hat das Zahlenliteral 020? Welchen Wert hat das Zahlenliteral 0x10? Wie kann man ein ganzzahliges long-literal erzeugen? Wie ist ein reellwertiges Literale aufgebaut? Wie kann man ein float Literal erzeugen? Welche boolschen Literale gibt es? Wie muß ein Zeichenliteral aussehen? Beschreiben Sie die Regeln für Zeichenketten Literale! Was versteht man unter der Initialisierung einer Variable? Warum müssen Variablen vor ihrer Verwendung initialisiert werden? Was ist ein Operator? Was ist die Stelligkeit eines Operators? Geben Sie Beispiele für 1 stellige und 2 stellige Operatoren! Gibt es in Java 3 stellige Operatoren? Was versteht man unter Nebeneffekten? Was sind Operator Vorrangregeln? Was verstehen wir unter der Bindungskraft eines Operators? Warum sind Operatorvorrangregeln wichtig? Was sind Inkrement und Dekrement Operatoren? Wie unterscheiden sich Postinkrement und Präinkrement Operator? In welchen Fällen sollte man die Inkrement und Dekrement Operatoren vermeiden bzw. verwenden? Welche relationalen Operatoren kennen Sie? Welche Datentypen sind bei der Verwendung relationaler Operatoren möglich? Welche Gefahren bestehen bei Verwendung von Short Circuit Logik Operatoren? Welche Zuweisungsoperatoren gibt es in Java? Warum kann man in Java in einem Befehl mehrere Variablenzuweisungen vornehmen? 59

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

8 Typwandlungen. 8.1 Automatische Typkonvertierungen

8 Typwandlungen. 8.1 Automatische Typkonvertierungen 8 Typwandlungen Hier geben wir Ihnen weitere Informationen zu Goto Java 2, die Sie ergänzend zu Hausaufgabe 3 lesen sollten. Sie sollten für die weiteren Ausführungen zunächst in Go To Java Kapitel 4.6

Mehr

Ausdrücke der Programmiersprache Java

Ausdrücke der Programmiersprache Java Ausdrücke der Programmiersprache Java Hamburg 1 Ablauf des Vortrags 01. Eigenschaften von Ausdrücken 02. Arithmetische Operatoren 03. Relationale Operatoren 04. Logische Operatoren 05. Bitweise Operatoren

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Was sind Operatoren Ein Operator ist eine in die Programmiersprache eingebaute Funktion, die

Mehr

Projekt 3 Variablen und Operatoren

Projekt 3 Variablen und Operatoren Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.

Mehr

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

Algorithmen & Programmierung. Ausdrücke & Operatoren (1) Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen } } Beispiele für Anweisungen Wiederholung Ausgabe

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

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

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 05 Datentypen Inhalt des 5. Kapitels Datentypen 5.1 Einleitung 5.2 Eingebaute Datentypen Übersicht Die Datentypen char, float und double Standardwerte Operatoren Konversion / Type-Cast Datentyp

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 20 Einstieg in die Informatik mit Java Literalkonstanten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 20 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten

Mehr

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java

Einführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Literalkonstanten Übersicht 1 Ganzzahlige Konstanten 2 Gleitkommakonstanten 3 Zeichenkonstanten 4 Zeichenketten 5 Boolsche Konstanten 6 null Referenz Literalkonstanten Literalkonstanten

Mehr

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird.

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird. 5 Mehr Java Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben einen Datentyp, der schon bei der Kompilierung festgelegt wird. Java unterscheidet zwei Arten von Typen:

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Operatoren? Ein Operator ist eine in die Programmiersprache eingebaute Funktion,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 30 Einstieg in die Informatik mit Java Datentypen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 30 1 Überblick 2 Ganzzahlige Typen 3 Gleitkommatypen 4 Zeichen, char

Mehr

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

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08 Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für

Mehr

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt? Bei

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

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

Java - Zahlen, Wahrheitswerte und Zeichen. Leibniz Universität IT Services Anja Aue Java - Zahlen, Wahrheitswerte und Zeichen Leibniz Universität IT Services Anja Aue Kommentare Hilfe für den Entwickler. Wer hat wann welche Änderung vorgenommen? Warum werden diese Anweisungen hier ausgeführt?

Mehr

Die einfachsten Anweisungen

Die einfachsten Anweisungen 2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser

Mehr

JAVA-Datentypen und deren Wertebereich

JAVA-Datentypen und deren Wertebereich Folge 8 Variablen & Operatoren JAVA 8.1 Variablen JAVA nutzt zum Ablegen (Zwischenspeichern) von Daten Variablen. (Dies funktioniert wie beim Taschenrechner. Dort können Sie mit der Taste eine Zahl zwischenspeichern).

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 29 Einstieg in die Informatik mit Java Weitere Ausdrücke Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 29 1 Überblick 2 Kombinierte Zuweisungsoperatoren 3 Vergleichsoperatoren

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable 1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem

Mehr

Datentypen und Operatoren

Datentypen und Operatoren Programmiervorkurs SS 2013 Datentypen und Operatoren Termin 2 Wiederholung: Einfache Datentypen Welche Datentypen kennt Ihr bereits? Einfache Datentypen Zeichen public class MyCharTest { char c1 = 'a';

Mehr

C-Programmierung: Ausdrücke und Operatoren#Division.2F

C-Programmierung: Ausdrücke und Operatoren#Division.2F C-Programmierung: Ausdrücke und Operatoren#Division.2F http://de.wikibooks.org/wiki/c-programmierung:_ausdrücke_und_operatoren#division_.2f This Book Is Generated By Wb2PDF using RenderX XEP, XML to PDF

Mehr

Variablen, Konstanten und Datentypen

Variablen, Konstanten und Datentypen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick

Mehr

Elementare Konzepte von

Elementare Konzepte von Elementare Konzepte von Programmiersprachen Teil 1: Bezeichner, Elementare Datentypen, Variablen, Referenzen, Zuweisungen, Ausdrücke Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Bezeichner

Mehr

2.1 Fundamentale Typen

2.1 Fundamentale Typen 2. Elementare Typen 2.1 Fundamentale Typen C++ stellt die wichtigsten Datentypen mit passender Form der Abspeicherung und zugehörigen Rechenoperationen zur Verfügung : Boolscher Datentyp (bool) für logische

Mehr

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Kapitel 3. Grunddatentypen, Ausdrücke und Variable Kapitel 3 Grunddatentypen, Ausdrücke und Variable Grunddatentypen, Ausdrücke und Variable 1 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen

Mehr

Java-Applikationen (Java-Programme)

Java-Applikationen (Java-Programme) Java-Applikationen (Java-Programme) Eine erste Applikation: 1 2 3 4 5 6 7 8 9 10 // Quelltext HalloWelt.java // Programm gibt den Text Hallo Welt aus public class HalloWelt public static void main(string[]

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 5.11.07, Weitere Ausdrücke Übersicht 1 Vergleichsoperatoren 2 Kombinierte Zuweisungsoperatoren 3 Logische Operatoren 4 Weitere Operatoren 5 Klassifizierung von Operatoren 6 Typumwandlungen

Mehr

Programmiervorkurs Einführung in Java Tag 1

Programmiervorkurs Einführung in Java Tag 1 Programmiervorkurs Einführung in Java Tag 1 Sebastian Glutsch SS 2018 namen Inhaltsübersicht Vorkurs Tag 1:,, en,, Einführung Tag 2: Boolesche Ausdrücke,, If-Abfragen, Switch-Case Tag 3: Arrays, (Do-)While-Schleife,

Mehr

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Sprachkonstrukte Einführung in Java Folie 1 von 20 12. Mai 2011 Ivo Kronenberg Inhalt Kommentare Identifier (Bezeichner) Variablen Numerische Ausdrücke und Typen Kontrollstrukturen Verzweigungen Bedingungen

Mehr

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

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15 Variablen CoMa-Übung VIII TU Berlin 4.12.2013 CoMa-Übung VIII (TU Berlin) Variablen 4.12.2013 1 / 15 Themen der Übung 1 Typanpassungen 2 Operatoren 3 Variablen-Gültigkeit CoMa-Übung VIII (TU Berlin) Variablen

Mehr

5 Grundlagen der Java-Syntax

5 Grundlagen der Java-Syntax 5 Grundlagen der Java-Syntax Es sollen nun einige Grundregeln besprechen, die in jeder Java-Programmdatei berücksichtigt werden müssen. 5.1 Grundsätzliches zur Syntax von Java Programmen Zunächst sollten

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8

Mehr

Programmieren in C / C++ Grundlagen C 2

Programmieren in C / C++ Grundlagen C 2 Programmieren in C / C++ Grundlagen C 2 Hochschule Fulda FB AI Wintersemester 2016/17 http://c.rz.hs-fulda.de Peter Klingebiel, HS Fulda, FB AI Anweisung / Ausdruck 1 Programm setzt sich aus vielen Anweisungen

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

9 Anweisungen und Kontrollstrukturen

9 Anweisungen und Kontrollstrukturen 9 Anweisungen und Kontrollstrukturen Hier beziehen wir uns auf Kapitel 6 von Go To Java 2. Die Steuerung des Programmablaufs geschieht durch sogenannte Anweisungen. Jede Anweisung bewirkt irgendwelche

Mehr

Teil I. Konzepte imperativer Programmierung

Teil I. Konzepte imperativer Programmierung Teil I Konzepte imperativer Programmierung 175 Abschnitt 4: Imperative Programmierung 4. Imperative Programmierung 4.1 Grunddatentypen und Ausdrücke 4.2 Imperative Variablenbehandlung 4.3 Anweisungen,

Mehr

Informatik I - Einstiegskurs

Informatik I - Einstiegskurs Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden Javaprogrammierung mit NetBeans Variablen, Datentypen, Methoden Programmieren 2 Java Bezeichner Bezeichner: Buchstabe _ $ Buchstabe _ $ Ziffer Groß- und Kleinbuchstaben werden strikt unterschieden. Schlüsselwörter

Mehr

Nino Simunic M.A. Computerlinguistik, Campus DU

Nino Simunic M.A. Computerlinguistik, Campus DU Vorlesung 3. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 Ausdrücke, Operatoren

Mehr

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I 84 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken, Typkonversionen Namen und Bezeichner 85 Ein Programm (also Klasse)

Mehr

3. Java - Sprachkonstrukte I

3. Java - Sprachkonstrukte I Namen und Bezeichner Ein Programm (also Klasse) braucht einen Namen 3. Java - Sprachkonstrukte I Namen und Bezeichner, Variablen, Zuweisungen, Konstanten, Datentypen, Operationen, Auswerten von Ausdrücken,

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 4. November 2015 Administratives Zur Abgabe von Übungsaufgaben Nein, wir

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Ausdrücke Übersicht 1 Die wichtigsten arithmetischen Ausdrücke Arithmetische Operatoren Inkrement und Dekrementoperatoren Zuweisungsoperator Mathematische Standardfunktionen Vergleichsoperatoren

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile

Mehr

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache Dr. Beatrice Amrhein Überblick Speicherverwaltung: Stack und Heap Ein- und Ausgabe über die Console Variablen und Operatoren Parameter

Mehr

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient.

Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Strings Ein String ist in Java eigentlich eine Klasse, wir können ihn aber zunächst als Datentyp betrachten, der zur Speicherung von Zeichenketten dient. Beispiel: String zeile = "Cusanus-Gymnasium Wittlich";

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 11 Motivation Es gibt eine Reihe

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 2. Typen und Variablen 27.10./03.11.2014 Prof. Dr. Ralf H. Reussner Version 1.2 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein

Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache. Dr. Beatrice Amrhein Die Sprache C# Datentypen, Speicherverwaltung Grundelemente der Sprache Dr. Beatrice Amrhein Überblick Speicherverwaltung: Stack und Heap Ein- und Ausgabe über die Console Variablen und Operatoren Parameter

Mehr

2 Imperative Sprachkonzepte

2 Imperative Sprachkonzepte 2 Imperative Sprachkonzepte Dieses Kapitel beschreibt die imperativen Sprachkonzepte von Java. Insbesondere werden einfache Datentypen, Variablen, Operatoren und Anweisungen zur Ablaufsteuerung (so genannte

Mehr

Grundlagen der Modellierung und Programmierung, Übung

Grundlagen der Modellierung und Programmierung, Übung Grundlagen der Modellierung und Programmierung Übung Prof. Wolfram Amme LS Softwaretechnik Prof. Klaus Küspert LS Datenbanksysteme Prof. Birgitta König-Ries LS Verteilte Systeme Prof. Dr. Wilhelm Rossak

Mehr

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

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

1. Referenzdatentypen: Felder und Strings

1. Referenzdatentypen: Felder und Strings 1. Felder und Strings Eigenschaften von Referenzdatentypen 1. Referenzdatentypen: Felder und Strings Referenzdatentypen sind Konstrukte, mit deren Hilfe wir aus einfachen Datentypen neue eigene Typen erzeugen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Operatoren und Ausdrücke

Operatoren und Ausdrücke Operatoren und Ausdrücke Zuweisungsoperator Arithmetische Operatoren Vergleichsoperatoren Logische Operatoren und Ausdrücke Implizite Typ-Umwandlung Rangordnung der Operatoren / Reihenfolge der Auswertung

Mehr

Semantik von Ausdrücken

Semantik von Ausdrücken Ausdrücke Semantik von Ausdrücken Da nun die Syntax von Ausdrücken eindeutig definiert ist, widmen wir uns nun (zunächst wieder informell) deren Semantik. Um die Bedeutung (Semantik) eines Ausdrucks festzulegen,

Mehr

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung. Java Übung Übung 2 Universität Duisburg-Essen Kommedia, Übung EinPro SS06, 19. April 2006 (UniDUE) 19. April 2006 1 / 13 Java Programme Java Programme bestehen aus (meist mehreren) Klassen. In den Klassen

Mehr

Tag 2 Repetitorium Informatik (Java)

Tag 2 Repetitorium Informatik (Java) Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und

Mehr

4. Zahlendarstellungen

4. Zahlendarstellungen 121 4. Zahlendarstellungen Wertebereich der Typen int, float und double Gemischte Ausdrücke und Konversionen; Löcher im Wertebereich; Fliesskommazahlensysteme; IEEE Standard; Grenzen der Fliesskommaarithmetik;

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 27 Einstieg in die Informatik mit Java Klassen als Datenstrukturen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 27 1 Überblick: Klassen als Datenstruktur 2 Vereinbarung

Mehr

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

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2 Prof. aa Dr. J. Giesl Programmierung WS16/17 F. Frohn, J. Hensel, D. Korzeniewski Tutoraufgabe 1 (Zweierkomplement): a) Sei x eine ganze Zahl. Wie unterscheiden sich die Zweierkomplement-Darstellungen

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

Mehr

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme

Mehr

System.out.println("TEXT");

System.out.println(TEXT); Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class

Mehr

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Wiederholung Anweisungen durch Methodenaufrufe Ausgabe

Mehr

Unterlagen. CPP-Uebungen-08/

Unterlagen.  CPP-Uebungen-08/ Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Einführung in die Programmierung I. 8. Prozedurale Konzepte in Java, Teil1. Stefan Zimmer

Einführung in die Programmierung I. 8. Prozedurale Konzepte in Java, Teil1. Stefan Zimmer Einführung in die Programmierung I 8. Prozedurale Konzepte in Java, Teil1 Stefan Zimmer 17.12.2007 Von Maple zu Java Maple ist für größere Projekte kaum die geeignete Sprache Daher wenden wir das Gelernte

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

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

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue Java - Schleifen Bedingung wiederhole ja Anweisung Anweisung Anweisung Leibniz Universität IT Services Anja Aue Anweisung int zahl; zahl = 2; zahl = zahl * 10; int zahl; ; Jede Anweisung endet mit einem

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung 7. Vorlesung 18.05.2016 1 Konstanten Ganzzahlkonstante Dezimal: 42, 23, -2 Oktal (0 vorangestellt): 052 Hexadezimal (0x vorangestellt): 0x2A Gleitkommazahlen: 3.1415, 2.71,

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Java Einführung Operatoren Kapitel 2 und 3

Java Einführung Operatoren Kapitel 2 und 3 Java Einführung Operatoren Kapitel 2 und 3 Inhalt dieser Einheit Operatoren (unär, binär, ternär) Rangfolge der Operatoren Zuweisungsoperatoren Vergleichsoperatoren Logische Operatoren 2 Operatoren Abhängig

Mehr

Programmierkurs C++ Variablen und Datentypen

Programmierkurs C++ Variablen und Datentypen Programmierkurs C++ Variablen und Datentypen Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Überblick Welche Datentypen gibt es in

Mehr

Programmieren I. Operatoren und Ausdrücke Heusch 6.2 Ratz Institut für Angewandte Informatik

Programmieren I. Operatoren und Ausdrücke Heusch 6.2 Ratz Institut für Angewandte Informatik Programmieren I Operatoren und Ausdrücke Heusch 6.2 Ratz 4.4.2 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Ausdrücke, Arten von Operatoren Ein Ausdruck ist eine Folge von Operatoren

Mehr

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1 Kapitel 2: Python: Ausdrücke und Typen Grundlagen der Programmierung 1 Holger Karl Wintersemester 2016/2017 Inhaltsverzeichnis Inhaltsverzeichnis 1 Abbildungsverzeichnis 2 Liste von Definitionen u.ä. 2

Mehr

2.5 Primitive Datentypen

2.5 Primitive Datentypen 2.5 Primitive Datentypen Wir unterscheiden 5 primitive Datentypen: ganze Zahlen -2, -1, -0, -1, -2,... reelle Zahlen 0.3, 0.3333..., π, 2.7 10 4 Zeichen a, b, c,... Zeichenreihen "Hello World", "TIFI",

Mehr

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

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Eine Anweisung wird mit dem Wertzuweisungsoperator = geschrieben. Daher ist y = x + 5.6; keine Gleichung, sondern die Anweisung den Wert

Mehr

Wo sind wir? Übersicht lexikale Struktur von Java

Wo sind wir? Übersicht lexikale Struktur von Java Wo sind wir? Java-Umgebung Lexikale Konventionen Datentypen Kontrollstrukturen Ausdrücke Klassen, Pakete, Schnittstellen JVM Exceptions Java Klassenbibliotheken Ein-/Ausgabe Collections Threads Applets,

Mehr

Algorithmen und ihre Programmierung

Algorithmen und ihre Programmierung Veranstaltung Pr.-Nr.: 101023 Algorithmen und ihre Programmierung Veronika Waue WS 07/08 Einführung Definition: Algorithmus Ein Algorithmus ist eine genau definierte Folge von Anweisungen zur Lösung eines

Mehr

2 Einfache Rechnungen

2 Einfache Rechnungen 2 Einfache Rechnungen 2.1 Zahlen Computer, auch bekannt als Rechner, sind sinnvoller eingesetzt, wenn sie nicht nur feste Texte ausgeben, sondern eben auch rechnen. Um das Rechnen mit Zahlen zu verstehen,

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

Mehr

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen. Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten

Mehr

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

Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Java Kurs für Anfänger Einheit 2 Datentypen und Operationen Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 16. Mai 2009 Inhaltsverzeichnis

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

Elementare Datentypen in C++

Elementare Datentypen in C++ Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der

Mehr

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben ein Datentyp, der schon bei der Kompilierung festgelegt wird.

Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben ein Datentyp, der schon bei der Kompilierung festgelegt wird. 5 Mehr Java Java ist statisch typisiert, d.h., Variablen, Ergebnisse von Ausdrücken, etc. haben ein Datentyp, der schon bei der Kompilierung festgelegt wird. Java unterscheidet zwei Arten von Typen: Basistypen

Mehr