Javakurs/Übungsaufgaben/Schleifen und Modulo
Inhaltsverzeichnis
Schleifen und Modulo
Hinweis: Bevor du mit der Aufgabe beginnst, musst du sie einmal komplett durchgelesen haben.
Aufgabe
Schreibe ein Programm, dass die Zahlen 1 bis 100 (jeweils inclusive) je auf einer eigenen Zeile ausgibt. Dabei soll statt der Zahl jede durch 3 Teilbare Zahl die Ausgabe "foo", jede durch 5 teilbare Zahl durch "bar" und jede durch 3 und 5 teilbare Zahl durch "foobar" ersetzt werden.
Die ersten Ausgaben des Programms sähen also so aus:
1 2 foo 4 bar foo 7 8 foo bar
etc.
Umsetzung
Erstelle eine neue Datei "LoopingFun.java" mit einer Klasse "LoopingFun" darin. Beispiel:
class LoopingFun { public static void main(String [] unused) { // Your code here ... } }
- Dein Code soll in die Main-Methode.
- Ergänze die Main Methode um eine Schleife, die von 1 bis 100 (inclusive) zählt.
- Gib in der Schleife den Zähler aus
- Teste dein Programm
- Ergänze dein Programm, so dass es anstatt der durch 3 teilbaren Zahlen "foo" ausgibt.
- Teste dein Programm
- Ergänze dein Programm, so dass es anstatt der durch 5 teilbaren Zahlen "bar" ausgibt. (Ignoriere dabei den Fall, wo eine Zahl durch 3 und durch 5 Teilbar ist)
- Teste dein Programm
- Ergänze dein Programm, so dass es eine durch 3 und 5 Teilbare Zahl korrekt ausgibt.
- Teste dein Programm.
Betrachte deine Lösung:
- Erklären die Namen der Variablen welchen Zweck sie haben?
- Enthält dein Programm Kommentare? Dokumentieren diese Kommentare was dein Programm tut (schlecht) oder warum du es tust (gut)?
- Wie stellt dein Programm Fest, ob eine Zahl durch 3, 5 oder durch beide Zahlen teilbar ist?
- Wie hast du die Schleife implementiert? Mit einer For-Schleife oder mit einer while-Schleife? Verändere deine Implementierung, so dass die andere Schleifenart verwendet wird.
- Welche der Schleifenkonstrukte ist für dieses Problem besser geeignet? Ändere (falls nötig) dein Programm so, dass die besser geeignete Syntax verwendet wird.
- Einige dich mit deinen Nachbarn ob "for" oder "while" hier besser geeignet ist und teilt euer Ergebnis dem Tutor mit.
- Wie viele Fallunterscheidungen verwendet dein Programm? Drei, vier, fünf oder noch mehr? Wenn du mehr als drei Fallunterscheidungen hast, überlege wie Du mit drei Fallunterscheidungen auskommen könntest.Verändere dein Programm entsprechend. (Hinweis: System.out.println() fügt jeder Ausgabe einen Zeilenumbruch hinzu. System.out.print() tut das nicht.)
- Wie viele lokale Variablen verwendest du? Wenn es mehr als eine ist, überlege ob du dein Programm vereinfachen kannst, indem du nur noch eine Variable verwendest. (Hint: Auch ein Schleifenzähler ist eine lokale Variable)
- Vergleiche deine Lösung mit der eines anderen Kursteilnehmers und betrachtet die Unterscheide anhand der Fragen die hier aufgeführt sind.
Zum Abschluss: Führe dein Programm einem Tutor vor und Programmiere seine Änderungsvorschläge.
Lösungsvorschlag für Tutoren
Für die Teilnehmer gilt: Diese Lösung bitte nicht betrachten, bevor die Aufgabe nicht komplett gelöst und mit dem Tutor besprochen ist. Lösungsvorschlag