Informatik9

Aus RMG-Wiki

<9b 2022 23

Kontrollsturkturen in Java

Hier findet ihr Lösungen zu den Kontrollstrukturen in Informatik. Ihr könnt den Text kopieren und in eure Klassen in BlueJ einfügen. Denkt auch daran den Methodenkopf zu kopieren oder selbr in BlueJ hinzuzufügen.

bedingte Anweisungen (if-else)

Lösung

/**
/* Die Methode istNull überprüft, ob eine eingegebene Zahl
/* gleich 0 ist.
/**

   void istNull (int a)
   {
       if(a==0){
          System.out.println(a+" ist null!");
       }
   }


Lösung

/**
/* Die Methode groesserKleinerNull überprüft, ob eine eingegebene Zahl
/* größer, kleiner oder gleich 0 ist.
/* Es gibt auch andere Lösungen.
/**

   void groesserKleinerNull (int a)
   {
       if(a>0)
       {
           System.out.println(a+ " ist größer 0.");
       }
       else {
           if (a<0){
               System.out.println(a+ " ist kleiner 0.");
           }
           else //a ist nun weder <0 noch >0. Also muss gelten a=0.
           {
               System.out.println(a+ " ist null.");
           }
       }
   }

Wiederholung mit fester Anzahl (for)

Lösung

/**
/* Die Methode potenz2hoch berechnet die Zahl 2 hoch n
/* und gibt das Ergebnis aus. n muss dabei eine natürlich Zahl sein.
/**

   void potenz2hoch(int n)
   {
       int ergebnis = 1;
       for(int i = n; i>0;i = i - 1){ // statt i = i-1 kann man i-- schreiben.
           ergebnis = ergebnis*2;
       }
       System.out.println("2 hoch "+ n+" ist "+ergebnis);
   }


Lösung

/**
/* Gib die Zahlen von 1 bis 10 untereinander aus. /**

   void von1bis10()
   {
       for(int i = 1; i<=10;i++){ // i++ bedeutet i = i + 1,also i wird um 1 erhöht.
           System.out.println(i);
       }
   }


Üben
  1. Ändere bei der obigen Methode folgendes ab, teste sie und notiere, was sich ändert:
   *statt i<=10 setze i<10 ein
   *statt i<=10 setze i<20 ein
   *statt i = 1 setze i = 0 ein
   *statt i++ setze i = i+2 ein
   *statt i++ setze i +=2 ein
   *finde eigene Änderungen.
  1. Ändere beim Methodenkopf "void von1bisn(int n)" und die Wiederholung so ab, dass man die Zahlen von 1 bis n ausgegeben bekommt. Vorsicht, nicht wundern, wenn die ersten Zahlen auf der Konsole nicht auftauchen. Dann ist n zu groß.
  2. Programmiere die Methode "fakultaetVon10()", die die Fakultät berechnet.
  3. Wandle die Methode fakultaet(int n) so ab, dass ein Parameter n übergeben werden kann und die Fakultät nicht nur bis 10 sondern bis n berechnet wird.

Aufgabe
In der Cloud oder in OndDrive findet ihr ein neues Projekt "Blumenwiese". Hier findet ihr sehr viele Klassen. Ihr könnt sie gerne alle anschauen, bearbeiten sollt ihr in der Klasse "Wiederholen" die Methode "alleBlumenAufheben". Um das Blumenfeld zu sehen. müsst ihr die Klasse einmal öffnen (mit nr=1). Dann seht ihr, was zu tun ist.

bedingte Wiederholung

Lösung

/**
/* Solange das Gewicht der Kuh unter 1000 ist, soll die Kuh fressen. /**

   void langFressen()
   {
       while(masse < 1000) // solange die Masse unter 1000 ist,
       {
            fressen();     // wird die Methode fressen aufgerufen.
       }
   }

Infos

DEKLARATION Beispiel Pseudocode
 while(<Bedingung>)
{
  Anweisung(en);
}
int i = 0; 
int potenz = 1; 
while(i<=10)
{
   System.out.println("2^" + i + " = " + potenz);
   potenz = potenz*2;
   i++;
}
Startwerte für i

und p festlegen
Solange i <= 10 ist,
gib die zweier Potenz aus,
nächste Potenz berechnen
i, um eins erhöhen (Dient zum Zählen für den Abbruch der Wiederholung)