[Java] [TUT] If-Abfrage

Dieses Thema im Forum "Programmier Tutorials" wurde erstellt von KingOfException, 26. Mai 2012 .

Schlagworte:
  1. 26. Mai 2012
    [TUT] If-Abfrage

    So Leute, das ist das erste Mal, dass ich ein Tutorial schreibe, deswegen seid bitte gnädig

    Ziel dieses Tutorials: Grundlagen vermitteln
    Themengebiete: If-Abfragen, Schleifen

    Die if-Abfrage

    Eine if-Abfrage ist eine Bedingung. Wenn diese Bedingung erfüllt wird, wird ein bestimmter Teil Code ausgeführt. Das heißt, dass das Programm Entscheidungen fällen kann.

    Ein kleines Beispiel:

    Sie wollen Fußball spielen und besitzen einen Ball. Es kann vorkommen, dass nach längerer Zeit der Ball Luft verliert und sie ihn vorher aufpumpen müssen.
    Es gibt also zwei Möglichkeiten.
    Entweder: Der Ball ist aufgepumpt und sie können gleich anfangen zu spielen
    Oder: Sie müssen erst den Ball aufpumpen und können erst dann anfangen zu spielen.

    Wir wollen jetzt ein kleines Programm schreiben, das testet, ob der Ball platt ist oder nicht.

    Hier mal die Struktur des Programms:
    Code:
     Los
     |
     |
     Ball testen
     | |
     wenn aufgepumpt wenn platt
     | |
     | ball aufblasen
     | | 
     SPIELEN! <--
    
    Der 'magische' Befehl heißt 'if', 'wenn' auf Englisch.

    Hinter dem 'if' kommt die Bedingung, die getestet werden soll und danach in {} das, was passieren soll, wenn die Bedingung stimmt.

    Code:
    if(BEDINGUNG)
    {
     ANWEISUNG
    }
    
    Wenn es sich nur um einen Befehl in der Anweisung handelt, können die geschweiften Klammern ( {} ) auch ausgelassen werden.

    Code:
    if(BEDINGUNG)
     ANWEISUNG;
    
    Um auf unser Ball-Problem zurückzukommen. Der Pseudocode sieht bisher so aus:

    Code:
    if(ball ist platt)
    {
     ball aufblasen;
    }
    
    System.out.println("LASS UNS JETZT SPIELEN!");
    
    Der if-Bereich wird nur ausgeführt, wenn der Ball platt ist. Ist dies nicht der Fall, wird auch der Bereich in {} ausgelassen.
    Die Ausgabe wird in jedem Fall ausgeführt, da sie sich nicht mehr in dem Bereich der {} befindet.

    So, jetzt ist es Zeit, den Pseudocode in richtigen JAVA-kompilierbaren Code zu verwandeln.

    Für den 'Status' (platt oder nicht platt) wird ein boolean verwendet.
    Im folgenden Beispiel ist der Ball nicht platt, siehe Zeile 5.

    Code:
    class BallTester
    {
     public static void main(String[]args)
     {
     boolean platt=false;
     
     if(platt==true)
     {
     System.out.println("Der Ball ist platt");
     platt=false;
     System.out.println("Der Ball wurde aufgepumpt");
     }
     
     System.out.println("Lass uns spielen, der Ball ist aufgepumpt");
     }
    }
    
    Da der Ball ja nicht platt ist, wird auch nicht der if-Teil ausgeführt. Wenn man jetzt anstatt platt= false; , platt=true; schreibt, werden folgende Ausgaben erscheinen:

    Der Ball ist platt
    Der Ball wurde aufgepumpt
    Lass uns spielen, der Ball ist aufgepumpt.

    Dies war jetzt eine Einführung zu der einzweigigen if-Anweisung, einzweigig, weil es nur den 'if'-Teil gibt, aber der 'else'-Teil fehlt.

    Der Befehl 'else' kann nur existieren, wenn es davor einen if Befehl gab.

    also:

    Code:
    if(....)
    {
     IRGENDWAS;
    }
    else
    {
     IRGENDWAS ANDERES;
    }
    
    Der else-Teil wird ausgeführt, wenn die if-Bedingung falsch war. Bei unserem BallTester kann dies nun so angewendet werden:

    Code:
    class BallTester
    {
     public static void main(String[]args)
     {
     boolean platt=false;
     
     if(platt==true)
     {
     System.out.println("Der Ball ist platt");
     platt=false;
     System.out.println("Der Ball wurde aufgepumpt");
     }
     else
     System.out.println("Der Ball war schon aufgepumpt");
    
     System.out.println("Lass uns spielen, der Ball ist aufgepumpt");
     }
    }
    
    Hier noch einige Beispiele:
    Code:
    class WasserTemperaturTester
    {
     public static void main(String[]args)
     {
     int wasserTemperatur=60;
     
     if(wasserTemperatur=>100)
     System.out.println("Das Wasser kocht!"); 
     else
     System.out.println("Das Wasser kocht noch nicht.");
     
     }
    }
    
    Ausgabe bei wasserTemperatur=60: Das Wasser kocht noch nicht.
    Ausgabe bei wasserTemperatur=120: Das Wasser kocht!

    Code:
    class NamenTester
    {
     public static void main(String[]args)
     {
     String name="Thomas";
    
     if(name.equals("Tom"))
     System.out.println("Die Namen sind identisch");
     else
     System.out.println("Die Namen sind nicht identisch");
     }
    }
    
    Ausgabe bei name="Tom": Die namen sind identisch
    Ausgabe bei name="Tim": Die namen sind nicht identisch

    /!\ Strings werden mit der Methode equals("...") verglichen und nicht mit ==.

    Ich hoffe, dieses Tutorial war soweit verständlich und ich konnte einigen helfen
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.