If-Anweisung: Unterschied zwischen den Versionen
K |
K (→Fehlerhafte if-Anweisungen) |
||
(13 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | =if-Anweisung= | ||
+ | |||
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. | 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 | + | In unserem Beispiel erstellen wir eine [[Klasse]], die wir if-Abfrage 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. |
− | < | + | <syntaxhighlight lang="java"> |
public class IfAbfrage { | public class IfAbfrage { | ||
Zeile 17: | Zeile 19: | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
− | + | =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. | ||
In unserem Beispiel wird der else-Block ausgeführt, da die Bedingung der if-Anweisung nicht wahr ist. | In unserem Beispiel wird der else-Block ausgeführt, da die Bedingung der if-Anweisung nicht wahr ist. | ||
− | < | + | <syntaxhighlight lang="java"> |
public class IfAbfrage { | public class IfAbfrage { | ||
Zeile 42: | Zeile 44: | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
+ | Als Beispiel siehe auch [[Beispielcode|Einfaches Quiz]] | ||
− | + | =else-if-Anweisung= | |
− | + | Eine dritte Variante bietet die Möglichkeit mehrere if-else-Anweisungen in einem Anweisungsblock ohne Verschachtelungen zu kombinieren. | |
− | Eine dritte Variante | ||
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. | 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 [[ | + | Ein mit der else-if-Anweisung vergleichbares Konstrukt ist die [[Switch-case-Anweisung]]. |
− | < | + | <syntaxhighlight lang="java"> |
public class IfAbfrage { | public class IfAbfrage { | ||
Zeile 64: | Zeile 66: | ||
System.out.print("Die erste Bedingung ist die erste wahre Bedingung."); | System.out.print("Die erste Bedingung ist die erste wahre Bedingung."); | ||
} | } | ||
− | else if(zahl >10) | + | else if(zahl > 10) |
{ | { | ||
System.out.print("Die zweite Bedingung ist die erste wahre Bedingung."); | System.out.print("Die zweite Bedingung ist die erste wahre Bedingung."); | ||
} | } | ||
− | else if(zahl | + | else if(zahl <= 5) |
{ | { | ||
System.out.print("Die dritte Bedingung ist die erste wahre Bedingung."); | System.out.print("Die dritte Bedingung ist die erste wahre Bedingung."); | ||
Zeile 79: | Zeile 81: | ||
} | } | ||
− | </code=java> | + | </syntaxhighlight> |
− | [[ | + | |
+ | =Fehlerhafte if-Anweisungen= | ||
+ | Was man oft bei Programmieranfängern sieht, ist die doppelte Abfrage, ob etwas wahr oder falsch ist. | ||
+ | |||
+ | '''Beispiel''' | ||
+ | <div style="border-style: dotted; border-color: darkred; padding: 1px;"> | ||
+ | <syntaxhighlight lang="java"> | ||
+ | if(textfield.isEditable() == true) { | ||
+ | ... | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | Die [[Methode]] <code>isEditable()</code> aus {{JAPI|javax.swing.JTextComponent}} von der auch {{JAPI|JTextField}} erbt, liefert bereits einen Wahrheitswert zurück.<br> | ||
+ | Wenn das Textfeld also editierbar ist, wird die Rückgabe der isEditable()-Methode <code>true</code> 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: | ||
+ | <div style="border-style: dotted; border-color: green; padding: 1px;"> | ||
+ | <syntaxhighlight lang="java"> | ||
+ | if(textfield.isEditable()) { | ||
+ | ... | ||
+ | } | ||
+ | </syntaxhighlight></div> | ||
+ | |||
+ | =Siehe auch= | ||
+ | *[[Switch-case-Anweisung]] | ||
+ | |||
+ | {{Fragen stellen}} | ||
+ | |||
[[Kategorie:Java Grundlagen]] | [[Kategorie:Java Grundlagen]] |
Aktuelle Version vom 7. April 2018, 16:54 Uhr
Inhaltsverzeichnis
if-Anweisung
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 if-Abfrage 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()) {
...
}
Siehe auch
Fragen
Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!
- Besuche uns im Byte-Welt-Forum
- Besuche unseren Chat
Wir helfen dir gerne!
Dir hat dieser Artikel gefallen? Oder Du hast Fehler entdeckt und möchtest zur Berichtigung beitragen? Prima! Schreibe einen Kommentar!
Du musst angemeldet sein, um einen Kommentar abzugeben.