If-Anweisung

Aus Byte-Welt Wiki
Wechseln zu: Navigation, Suche

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.

public class IfAbfrage {
 
	public static void main(String[] args) {
 
		int zahl = 10;
 
		if(zahl == 10)
		{
			System.out.print("Die Bedingung ist wahr.");
		}
	}
 
}

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.

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.");
		}
	}
 
}

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.


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.");
                }
	}
 
}

Fehlerhafte if-Anweisungen

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

Beispiel

if(textfield.isEditable() == true) {
...
}

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öllig unnötig, noch mal mit einem weiteren boolschen Wert zu vergleichen.

Die berichtigte Zeile im obigen Code-Beispiel sollte daher so aussehen:

if(textfield.isEditable()) {
...
}