1.05 Exkurs: Konsolenabfragen

Wir lernen nun, wie unsere Programme interaktiv gestaltet werden können. Das wird zwar zunächst immer noch recht nüchtern über die Konsole ablaufen, hilft uns aber, einige wichtige Aspekte – wie den Umgang mit Fehlern im Programmablauf – kennen zu lernen.

Diese kleine Programm fragt zunächst in der Konsole nach einer Zahl. Geben wir dort eine (ganze) Zahl ein und drücken Eingabe, erscheint als Antwort das Doppelte der Zahl.

import java.util.Scanner;

public class Konsolenabfrage {

public static void main(String [] args){

      Scanner meinScanner = new Scanner(System.in);
      
      System.out.print("Gib mir eine Zahl: ");

      int geleseneZahl;
      geleseneZahl = meinScanner.nextInt();
         
      meinScanner.close();

      System.out.println(2*geleseneZahl);
         
   }
}

Gehen wir es einmal Schritt für Schritt durch.

Die erste Zeile

import java.util.Scanner;

sorgt dafür, dass wir das Zusatzwerkzeug Scanner in unserem Programm verwenden können. Solche import-Anweisungen werden wir später noch etwas genauer betrachten.

In der Zeile

Scanner meinScanner = new Scanner(System.in);

wird ein solcher Scanner erschaffen und mit der Konsole verbunden.

Es erfolgt nun in der Konsole die Aufforderung

Gib mir eine Zahl:

damit der Benutzer weiß, dass er eine Zahl eingeben soll. In der Zeile

geleseneZahl = meinScanner.nextInt();

findet das eigentliche Einlesen der Zahl statt. Durch die Anweisung

meinScanner.close();

wird unser Scanner geschlossen, d.h., wir geben hier an, dass wir ihn nicht mehr benötigen. Die Zeile

System.out.println(2*geleseneZahl);

liefert dann die Ausgabe des Doppelten der Zahl.

Der Befehl nextInt() versucht immer die Eingabe, die zunächst einfach nur eine Folge von Schriftzeichen ist, als Integer-Wert zu interpretieren. Hier gibt es ein Risiko. Geben wir in der Konsole beispielsweise einen Buchstaben statt einer Zahl ein, stürzt unser Programm ab. Zur Vermeidung solcher Abstürze kommen wir später.

Kombinieren wir einmal Konsolenabfragen und Zählschleifen. Es soll nun ein Programm erstellt werden, in dem der Benutzer zuerst gefragt wird, wie viele Zahlen er addieren möchte. Danach werden so viele Zahlen abfragt wie er sich gewünscht hat. Schließlich wird die Summe dieser Zahlen ausgegeben. Bevor Du weiterliest, kannst Du versuchen, dieses Programm selbst als Übung zu programmieren!

Eine mögliche Lösung sieht wie folgt aus:

import java.util.Scanner;

public class KonsolenabfrageSumme {

public static void main(String [] args){

      Scanner meinScanner = new Scanner(System.in);
      
      System.out.print("Wie viele Zahlen willst Du addieren? ");
      int anzahl;
      anzahl = meinScanner.nextInt();
      
      int summe;
      summe = 0;
      
      for(int zaehler = 0; zaehler < anzahl; zaehler = zaehler + 1){
          System.out.print("Gib mir eine Zahl: ");
    	  summe = summe + meinScanner.nextInt();
      }
      
      meinScanner.close();

      
      System.out.print("Summe: ");
      System.out.println(summe);
         
   }
}

Die gewünschte Anzahl wird wird in der Variablen anzahl gespeichert. Anschließend wird die Variable summe mit dem Startwert 0 angelegt. In der Zählschleife werden dann die zu addierenden Zahlen eingelesen und sofort zur bisherigen Summe addiert. Der Zähler in der Schleife läuft übrigens von 0 bis zur gewünschten Anzahl minus eins. Man hätte auch schreiben können for(int zaehler = 1; zaehler <= anzahl; zaehler = zaehler + 1) , so dass er von 1 bis zur Anzahl läuft. In der Literatur wird aber oft die Variante verwendet, in der der Zähler bei 0 startet.

Im Clip schauen wir uns zunächst das erste Beispiel von oben an. Danach wandeln wir es ein wenig ab, um Ideen für weitere Experimente zu bekommen.


Wiedergabe stellt eine Verbindung zu YouTube her.