If-Anweisung: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 19: Zeile 19:
 
</code=java>
 
</code=java>
  
==if-else-Anweisung==
+
=if-else-Anweisung=
 
Es gibt noch eine zweite Variante der if-Anweisung, die so genannte if-else Anweisung. Mit dieser if-else Konstruktion können Sie wahre und nicht wahre Bedingungen ausführen.
 
Es gibt noch eine zweite Variante der if-Anweisung, die so genannte if-else Anweisung. Mit dieser if-else Konstruktion können Sie wahre und nicht wahre Bedingungen ausführen.
  
Zeile 45: Zeile 45:
 
Als Beispiel siehe auch [[Beispielcode|Einfaches Quiz]]
 
Als Beispiel siehe auch [[Beispielcode|Einfaches Quiz]]
  
==else-if-Anweisung==
+
=else-if-Anweisung=
 
Eine dritte Variante bietet die Möglichkeit mehrere if-else-Anweisungen in einem Anweisungsblock ohne Verschachtelungen zu kombinieren.  
 
Eine dritte Variante bietet die Möglichkeit mehrere if-else-Anweisungen in einem Anweisungsblock ohne Verschachtelungen zu kombinieren.  
  

Version vom 8. Mai 2014, 19:24 Uhr

Ein if-Anweisung, auch if-Abfragen oder if-Verzweigungen genannt, wird benötigt, um den Programmablauf durch eine Bedingung zu verzweigen bzw. zu verändern.

In unserem Beispiel erstellen wir eine Klasse, die wir IfAbfrage nennen. Danach deklarieren wir eine Variable zahl vom Typ int und definieren sie mit dem Wert '10'. Jetzt kommen wir zu unseren if-Abfrage. In Klammern nach dem if steht die Bedingung, die getestet wird. Ist diese wahr, wird der Block nach dem if ausgeführt, ist die Bedingung nicht wahr, wird dieser Block nicht ausgeführt.

<code=java> public class IfAbfrage {

public static void main(String[] args) {

int zahl = 10;

if(zahl == 10) { System.out.print("Die Bedingung ist wahr."); } }

} </code=java>

if-else-Anweisung

Es gibt noch eine zweite Variante der if-Anweisung, die so genannte if-else Anweisung. Mit dieser if-else Konstruktion können Sie wahre und nicht wahre Bedingungen ausführen.

In unserem Beispiel wird der else-Block ausgeführt, da die Bedingung der if-Anweisung nicht wahr ist.

<code=java> public class IfAbfrage {

public static void main(String[] args) {

int zahl = 10;

if(zahl != 10) { System.out.print("Die Bedingung ist wahr."); } else { System.out.print("Die Bedingung ist nicht wahr."); } }

} </code=java> Als Beispiel siehe auch Einfaches Quiz

else-if-Anweisung

Eine dritte Variante bietet die Möglichkeit mehrere if-else-Anweisungen in einem Anweisungsblock ohne Verschachtelungen zu kombinieren.

Dabei werden die Bedigungen aller if-Anweisungen solange linear überprüft, bis eine Anweisung wahr ist oder die else-if-Anweisung zu Ende ist. Wird eine der Anweisungsüberprüfungen mit wahr ausgewertet, so wird der entsprechende Code ausgeführt und der else-if-Anweisungsblock anschließend ohne weiter Überprüfungen verlassen.

Ein mit der else-if-Anweisung vergleichbares Konstrukt ist die Switch-case-Anweisung.


<code=java> public class IfAbfrage {

public static void main(String[] args) {

int zahl = 10;

if(zahl == 10) { System.out.print("Die erste Bedingung ist die erste wahre Bedingung."); } else if(zahl > 10) { System.out.print("Die zweite Bedingung ist die erste wahre Bedingung."); } else if(zahl <= 5) { System.out.print("Die dritte Bedingung ist die erste wahre Bedingung."); }

               else
               {

System.out.print("Keine der Bedingungen ist wahr.");

               }

}

} </code=java>

Fehlerhafte if-Anweisungen

Was man oft bei Programmieranfängern sieht, ist die doppelte Abfrage, ob etwas wahr oder falsch ist.

Beispiel <code=java> if(textfield.isEditable() == true) { ... } </code=java> Die Methode isEditable() aus javax.swing.JTextComponent von der auch JTextField erbt, liefert bereits einen Wahrheitswert zurück.
Wenn das Textfeld also editierbar ist, wird die Rückgabe der isEditable()-Methode true sein. Es ist hier also vöölig unnötig, noch mal mit einem weiteren boolschen Wert zu vergleichen.

Die berichtigte Zeile im obigen Code-Beispiel sollte daher so aussehen: <code=java> if(textfield.isEditable()) { ... } </code=java>