Kurzformen: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Zuweisungsoperatoren)
K (Ternärer Ausdruck)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
In der Vergangenheit war es recht üblich auch den Quellcode eines Programmes möglichst klein zu halten, da man große Dateien vermeiden wollte und beim Übersetzungsvorgang nur sehr wenige KiloByte an Arbeitsspeicher zur Verfügung hatte, um das Programm zur Übersetzung zu analysieren. Aus diesem Grunde, und weil Programmierer einfach gerne ein paar Zeichen weniger tippen wollen, haben sich in vielen Programmiersprachen, auch in Java, verschiedene Kurzschreibweisen etabliert.
+
=Hintergrund=
 +
 
 +
Früher war es recht üblich, den Quellcode eines Programmes möglichst klein zu halten, da für den [[Compiler|Übersetzungsvorgang]] nur ein paar [[Bit|Kilobyte]] an Arbeitsspeicher zur Verfügung standen. Deswegen und weil Programmierer gerne ein paar Zeichen weniger tippen, haben sich in vielen [[Programmiersprachen]], auch in '''[[Java]]''', diverse '''Kurzschreibweisen''' etabliert.
  
 
= Abkürzende Notation in Java =
 
= Abkürzende Notation in Java =
Zeile 5: Zeile 7:
 
== Zuweisungsoperatoren ==
 
== Zuweisungsoperatoren ==
  
Um einer Variablen einen neuen Wert in Abhängigkeit ihres eigenen Wertes zu geben, würde man z.B. folgendes schreiben:
+
Um einer [[Variablen]] einen neuen Wert in Abhängigkeit ihres eigenen Wertes zu geben, würde man z.B. folgendes schreiben:
  
 
<code>a = a + 5;</code>
 
<code>a = a + 5;</code>
  
Dies addiert 5 auf den aktuellen Wert der Variablen <code>a</code>
+
Dies addiert 5 auf den aktuellen Wert der Variablen <code>a</code>.
  
Um dies auch kürzer zu formulieren ist auch folgene Notation legitim:
+
Um dies kürzer zu formulieren ist auch folgende Notation legitim:
  
 
<code>a += 5;</code>
 
<code>a += 5;</code>
  
Das selbe gilt für alle anderen Grundoperationen, also insgesamt für: Addition, Subtraktion, Multiplikation, Division und Modulo.
+
Dasselbe gilt für alle anderen [[Operator|Grundoperationen]], also insgesamt für: Addition, Subtraktion, Multiplikation, Division und Modulo.
  
 
<source lang="java">
 
<source lang="java">
Zeile 27: Zeile 29:
 
== Ternärer Ausdruck ==
 
== Ternärer Ausdruck ==
  
Der ternäre Ausdruck ist ein sehr kurz formulierter <code>if ... then ... else ...</code> Ausdruck und besitzt in Abhängigkeit einer Bedingung einen von zwei Werten, die beide den gleichen Typ haben müssen und zur Laufzeit an der Position des Ausdrucks aufgelöst werden.
+
===Erklärung===
 +
 
 +
Der '''ternäre Ausdruck''' ist ein sehr kurz formulierter <code>if ... then ... else ...</code>-Ausdruck (also eine [[Alternative]]) und besitzt in Abhängigkeit einer Bedingung einen von zwei Werten, die beide den gleichen [[Datentyp|Typ]] haben müssen.
  
Ein Ternärer Ausdruck wird folgendermaßen notiert:
+
Ein ternärer Ausdruck wird folgendermaßen notiert:
  
 
<code> BEDINGUNG ? WERT : WERT </code>
 
<code> BEDINGUNG ? WERT : WERT </code>
  
Mit der Intention: Ist die Bedingung wahr, so soll der erste Wert verwendet werden, ist sie falsch, so soll der zweite Wert verwendet werden.
+
Die Intention lautet: Ist die Bedingung wahr, so soll der erste Wert verwendet werden, ist sie falsch, so soll der zweite Wert verwendet werden.
  
Da der ternäre Ausdruck Code schnell unleserlich macht, wird er ungerne gesehen, kann aber an manchen Stellen im Quellcode zu mehr Übersicht führen.
+
Da der ternäre Ausdruck Code schnell unleserlich macht, wird er ungern gesehen, kann aber an manchen Stellen im Quellcode zu mehr Übersicht führen.
  
 
=== Beispiel ===
 
=== Beispiel ===
Zeile 44: Zeile 48:
 
public static void printTwoDigits(int x){
 
public static void printTwoDigits(int x){
 
     int d = x % 100; //Extrahiert die letzten zwei Ziffern von x und speichert sie in d
 
     int d = x % 100; //Extrahiert die letzten zwei Ziffern von x und speichert sie in d
     System.out.println( (d < 10 ? "0" : "") + d); //Ist d kleiner 10, so füge eine 0 vor d hinzu, sonst füge den leeren String, also nichts, hinzu
+
     System.out.println( (d < 10 ? "0" : "") + d); //Ist d kleiner 10, so füge eine 0 vor d hinzu, sonst füge den leeren String, also nichts, hinzu.
 
}
 
}
 
</source>
 
</source>

Aktuelle Version vom 26. Juli 2016, 15:31 Uhr

Hintergrund

Früher war es recht üblich, den Quellcode eines Programmes möglichst klein zu halten, da für den Übersetzungsvorgang nur ein paar Kilobyte an Arbeitsspeicher zur Verfügung standen. Deswegen und weil Programmierer gerne ein paar Zeichen weniger tippen, haben sich in vielen Programmiersprachen, auch in Java, diverse Kurzschreibweisen etabliert.

Abkürzende Notation in Java

Zuweisungsoperatoren

Um einer Variablen einen neuen Wert in Abhängigkeit ihres eigenen Wertes zu geben, würde man z.B. folgendes schreiben:

a = a + 5;

Dies addiert 5 auf den aktuellen Wert der Variablen a.

Um dies kürzer zu formulieren ist auch folgende Notation legitim:

a += 5;

Dasselbe gilt für alle anderen Grundoperationen, also insgesamt für: Addition, Subtraktion, Multiplikation, Division und Modulo.

+=
-=
*=
/=
%=

Ternärer Ausdruck

Erklärung

Der ternäre Ausdruck ist ein sehr kurz formulierter if ... then ... else ...-Ausdruck (also eine Alternative) und besitzt in Abhängigkeit einer Bedingung einen von zwei Werten, die beide den gleichen Typ haben müssen.

Ein ternärer Ausdruck wird folgendermaßen notiert:

BEDINGUNG ? WERT : WERT

Die Intention lautet: Ist die Bedingung wahr, so soll der erste Wert verwendet werden, ist sie falsch, so soll der zweite Wert verwendet werden.

Da der ternäre Ausdruck Code schnell unleserlich macht, wird er ungern gesehen, kann aber an manchen Stellen im Quellcode zu mehr Übersicht führen.

Beispiel

Folgender Code gibt immer zwei Ziffern aus. Hat die auszugebende Zahl nur eine Ziffer, wird der Rest mit 0-en aufgefüllt:

public static void printTwoDigits(int x){
    int d = x % 100; //Extrahiert die letzten zwei Ziffern von x und speichert sie in d
    System.out.println( (d < 10 ? "0" : "") + d); //Ist d kleiner 10, so füge eine 0 vor d hinzu, sonst füge den leeren String, also nichts, hinzu.
}