studyklar
GdI 2 · Übungsblatt 2 · Aufgabe 3

Spenden sammeln bis 1000 Euro: die while-Schleife

Eine Kita sammelt Spenden für ein Spielgerät für 1000 Euro. Das Programm nimmt Spenden an, bis das Ziel erreicht ist. Wie viele Spenden das sind, weiß man vorher nicht: ein Fall für die while-Schleife. Rechts steht das fertige Programm, die Zeilen zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 3

Eine Kita sammelt Spenden für ein neues Spielgerät, das 1000 Euro kostet. Schreiben Sie ein Programm zur Verwaltung der eingegangenen Spenden. Auf der Konsole kann man die einzelnen Spenden (nur volle Eurobeträge) eingeben. Jedes Mal, wenn ein Spendenbetrag eingegeben wurde, wird die bisher erreichte Gesamtsumme ausgegeben. Wenn die Gesamtsumme 1000 Euro oder mehr beträgt, wird mitgeteilt, dass das Ziel erreicht wurde, und das Programm wird beendet.

Das Programm soll immer wieder nach einer Spende fragen und die bisherige Summe zeigen. Ab 1000 Euro meldet es, dass das Ziel erreicht ist, und endet.

Merke: for nimmt man, wenn die Zahl der Runden vorher feststeht (wie in Aufgabe 2 „Summen ausgeben“: genau 10 Zeilen). while nimmt man, wenn eine Bedingung entscheidet, wann Schluss ist.
  1. Die passende Schleife wählen.
  2. Ziel und Summe anlegen.
  3. Bedingung und Rumpf der Schleife schreiben.
  4. Nach der Schleife das Erreichen melden.

Warum while und nicht for

        while (summe < ZIEL) {
        }

Ob das Ziel nach zwei oder nach zwanzig Spenden erreicht ist, hängt von den Beträgen ab. Die Zahl der Runden steht also nicht fest. while prüft vor jeder Runde eine Bedingung: Ist sie wahr, läuft die Runde, sonst geht es hinter der Schleife weiter.

Aus Vorlesung 2, Folie 22 („While-Schleife“): while (Bedingung) { … } wiederholt den Block, solange die Bedingung wahr ist.

Ziel und Summe anlegen

        final int ZIEL = 1000;        int summe = 0;

Das Ziel ändert sich nie, also eine Konstante ZIEL. Die Summe beginnt bei 0: Vor der ersten Spende ist nichts gesammelt. Beide stehen vor der Schleife: Die Bedingung summe < ZIEL braucht sie schon vor der ersten Runde, und eine Variable, die erst in der Schleife angelegt wird, kennt Java außerhalb nicht. Stünde summe = 0; in der Schleife, finge die Summe jede Runde neu bei 0 an.

Aus Blatt 1, Aufgabe 3 („Minuten umrechnen“): final macht eine Variable zur Konstanten, ihr Wert lässt sich nicht mehr ändern.
Noch 5 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Das Programm Spenden

while bis zum Ziel

Abbildung 1Das Programm Spenden

while bis zum Ziel

import java.util.Scanner; public class Spenden {     public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);         final int ZIEL = 1000;        int summe = 0;         while (summe < ZIEL) {            System.out.print("Spende in Euro: ");            int spende = scanner.nextInt();            summe += spende;            System.out.println("Bisher gespendet: " + summe + " Euro");        }         System.out.println("Ziel von " + ZIEL + " Euro erreicht!");    }}
LegendeDas ganze Programm.