Apps für Android programmieren leicht gemacht!
2.4 if-Abfragen

2.4 if-Abfragen

if-Abfragen sind eine sehr gute Möglichkeit und wohl auch eine der einzigen Bedingungen einmalig zu prüfen und eure Programme/Apps etwas prüfen zu lassen.
Dieses Kapitel beschäftigt sich nur kurz mit diesen if-Abfragen und erklärt wie diese aufgebaut sind.

Zunächst sind if-Abfragen sehr einfach aufgebaut. Sie bestehen aus dem Befehl if, mit einer Klammer, in der die Bedingung beschrieben ist und eine geschweifte Klammer in der der auszuführende Programmcode steht.

if( [Bedingung] ){
   //Auszuführender Programmcode
}

Mehr ist dies eigentlich nicht.

Nun zu der Beschreibung der Bedingung.
Wir haben für Zahlen eine ganze Hand voll Bedingungen, die wir in die Klammer eintragen können. Diese Bedingungen bestehen eigentlich größtenteils aus mathematischen Operatoren:

  • „Zahl1 < Zahl2“ <– führt den Programmcode aus, wenn die Zahl 1 kleiner ist als Zahl 2.
  • „Zahl1 =< Zahl2“  <– führt den Programmcode aus, wenn die Zahl 1 kleiner oder genau so groß ist wie Zahl 2.
  • „Zahl1 > Zahl2“  <– führt den Programmcode aus, wenn die Zahl  1 größer ist als Zahl 2.
  • „Zahl1 >= Zahl2“  <– führt den Programmcode aus, wenn die Zahl  1 größer oder genau so groß ist wie Zahl 2.
  • „Zahl1 == Zahl2“ <– führt den Programmcode aus, wenn die Zahl  1 genau so groß ist wie Zahl 2.

 

Wichtig: Die Vergleichsoperatoren dürfen niemals eine Art Pfeil bilden! „<=“ ist nicht möglich. „=<“ ist möglich.

Vergleichen wir zwei Texte und wollen prüfen ob diese gleich sind sollten wir den Befehl „.equals()“ benutzen.

text1.equals( text2 );

Wir können ja mal Beispielhaft zwei Zahlen und zwei Texte vergleichen.

int zahl1 = 1;
int zahl2 = 2;

if( zahl1 < zahl2 ){
   //der hier platzierte Programmcode wird ausgeführt, weil die Zahl1 kleiner ist als die Zahl2
}

//--------------------------------------
String text1 = "hi";
String text2 = "hallo";

if( text1.equals( text2 ) ){
   //der hier platzierte Programmcode wird NICHT ausgeführt, da der text1 nicht mit text2 übereinstimmt (Englisch: equal)
}

Bedingungen negieren:

Wir können natürlich auch darauf prüfen, ob eine Bedingung nicht stimmt. Bisher haben wir den Programmcode innerhalb der if-Abfrage ja nur ausgeführt, wenn die Bedingung stimmte.

Zu diesem Zweck haben wir 2 verschiedene Möglichkeiten. Entweder wir definieren einen sogenannten Fallback, also einen Programmcode der alternativ ausgeführt wird wenn die Bedingung nicht stimmt, oder wir prüfen direkt in der Abfrage ob die Bedingung nicht stimmt.

Zunächst zu Fallback, dazu benutzen wir wieder die obigen if-Abfragen und fügen als Ende jeder if-Abfrage ein „else“ ein.

int zahl1 = 1;
int zahl2 = 2;

if( zahl1 < zahl2 ){
   //der hier platzierte Programmcode wird ausgeführt, weil die Zahl1 kleiner ist als die Zahl2
}else{
   //der hier platzierte Programmcode wird NICHT ausgeführt, da die Bedingung oben eingetreten ist
}

//--------------------------------------
String text1 = "hi";
String text2 = "hallo";

if( text1.equals( text2 ) ){
   //der hier platzierte Programmcode wird NICHT ausgeführt, da der text1 nicht mit text2 übereinstimmt (Englisch: equal)
}else{
   //der hier platzierte Programmcode wird ausgeführt, da die Bedingung oben nicht eingetreten ist
}

Wenn wir dieses „if (zahl1 < zahl2) { [Code 1] } else { [Code 2] }“ mal grob ins Deutsche übersetzen würde dies so viel wie „Wenn Zahl1 kleiner als Zahl2 ist führe [Code 1] aus, ansonsten führe [Code 2] aus.“ heißen. Vielleicht werden die Befehle dazu etwas deutlicher.

Alternativ gibt es noch die Möglichkeit eine if-Abfrage direkt zu negieren. Dazu fügen wir vor die Bedingung ein „!“ ein. Wir nutzen als Beispiel wieder den obigen Beispielcode:

int zahl1 = 1;
int zahl2 = 2;

if( ! zahl1 < zahl2 ){
   //der hier platzierte Programmcode wird NICHT ausgeführt, weil die Zahl1 NICHT kleiner ist als die Zahl2
}

//--------------------------------------
String text1 = "hi";
String text2 = "hallo";

if( ! text1.equals( text2 ) ){
   //der hier platzierte Programmcode WIRD ausgeführt, da der text1 NICHT mit text2 übereinstimmt (Englisch: equal)
}

Bedingungen verbinden:

Manchmal ist es nötig mehrere Bedingungen auf einmal zu prüfen, dazu können wir die Bedingungen einfach innerhalb einer einzigen if-Abfrage verbinden.
Zum Verbinden gibt es folgende zwei Operatoren „||“ und „&&“. Das „||“ steht für ein oder und das „&&“ steht für ein und.
Somit können wir ganz einfach beliebig viele Bedingungen verknüpfen, je nachdem ob wir mit einem „oder“ oder mit einem „und“ prüfen möchten.

int zahl1 = 1;
int zahl2 = 2;

if( zahl1 < zahl2 && zahl1 == 1 ){
   //der hier platzierte Programmcode wird ausgeführt, weil die Zahl1 kleiner ist als die Zahl2 UND zusätzlich noch 1 ist.
}

//--------------------------------------
String text1 = "hi";
String text2 = "hallo";

if(  text1.equals( text2 ) || ! text1.equals( text2 ) ){
   //der hier platzierte Programmcode wird immer ausgeführt, da der text1 und text2 übereinstimmen können ODER nicht
}

Abfragen verbinden:

Wem die Abfrage nach mehreren Bedingungen innerhalb einer if-Abfrage zu viel sind kann alternativ auch einfach mehrere if-Abfragen verbinden.
Den Befehl „else“ am Ende einer Abfrage haben wir ja bereits kennen gelernt, nun kommt noch der Befehl „else if“ hinzu.
Wichtig ist herbei zu beachten, dass man zwar theoretisch unendlich viele Abfragen mit einander verbinden könnte, aber sobald eine Bedingung zutrifft die anderen Bedingungen nicht mehr geprüft und übersprungen werden.

int zahl1 = 1;
int zahl2 = 2;

if( zahl1 < zahl2 ){
   //der hier platzierte Programmcode wird ausgeführt, weil die Zahl1 kleiner ist als die Zahl2.
} else if ( zahl1 == 1 ){
   //der hier platzierte Programmcode wird NICHT ausgeführt, obwohl die Zahl1 = 1 ist, weil bereits die erste Bedingung erfolgreich war.
}

Wichtige Reihenfolge:

Wichtig ist zu beachten, dass als erstes immer der if-Befehl kommt, danach erst die else-if-Befehle und erst als letztes der else-Befehl !
Außerdem sollte beachtet werden, dass egal wie viele Abfragen man verbindet immer nur eine davon ausgeführt wird, falls eine Bedingung eintritt.

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld