Scanner Einführung mit einem Beispiel



Bis jetzt haben wir nur Programme geschrieben, die nur mit fest definierten Variablen gearbeitet haben. Dabei sind ja in der Mathematik die Variablen nur Platzhalter. Das bedeutet, dass die Variable „x“ in Wirklichkeit eine beliebig große und kleine Zahl werden kann. Wir können leider als Benutzer nicht wie in der Mathematik einfach den Wert radieren und danach mit einem neuen Wert überschreiben. Dies ist leider nicht möglich. Damit der Benutzer ohne Programmiererfahrungen das Programm oder die Anwendung bedienen kann, muss im Programm die Funktion „Scanner“ vor definiert sein. Somit wartet der Compiler bis ihr eine Zahl oder eine Eingabe betätigt habt.
Im folgenden Programm habe ich einen kleinen Taschenrechner, der nur addieren und subtrahieren kann, eingebaut. Die einzelnen Schritte werden wir am Ende erörtern.


  1   import java.util.Scanner;

  2   public class Main {

  3

  4      public static void main(String[] args) {

  5

  6         Scanner variableX_Y = new Scanner(System.in);

  7         System.out.println("0=ADDITION");

  8         System.out.println("1=SUBTRAKTION");

  9         byte eingabe = variableX_Y.nextByte();

 10

 11         switch(eingabe){

 12            case 0:

 13

 14               System.out.println("ADDITION");

 15               Scanner summandEins = new Scanner(System.in);

 16               System.out.println("GEBEN SIE DEN ERSTEN SUMMAND EIN: ");

 17               double ersteSummand = summandEins.nextDouble();

 18

 19               Scanner summandZwei = new Scanner(System.in);

 20               System.out.println("GEBEN SIE DEN ZWEITEN SUMMAND EIN: ");

 21               double zweiteSummand = summandZwei.nextDouble();

 22

 23               double ergebnis1 = ersteSummand + zweiteSummand;

 24

 25               System.out.println("ERGEBNIS DER ADDITION LAUTET: "+ergebnis1);

 26               break;

 27

 28            case 1:

 29               System.out.println("SUBTRAKTION");

 30               Scanner summandDrei = new Scanner(System.in);

 31               System.out.println("GEBEN SIE DEN ERSTEN SUMMAND EIN: ");

 32               double dritteSummand = summandDrei.nextDouble();

 33

 34               Scanner summandVier = new Scanner(System.in);

 35               System.out.println("GEBEN SIE DEN ZWEITEN SUMMAND EIN: ");

 36               double vierteSummand = summandVier.nextDouble();

 37

 38               double ergebnis2 = dritteSummand - vierteSummand;

 39

 40               System.out.println("ERGEBNIS DER SUBTRAKTION LAUTET: "+ergebnis2);

 41               break;

 42            default:

 43               System.out.println("UNGULTIGE EINGABE");

 44               break;

 45            }

 46        }

 47   }

Obwohl ich in dem letzten Post von mir gegeben habe, dass ich am liebsten if und else/else if Verzweigungen verwende, wollte ich im obigen Beispiel trotzdem das switch and case anwenden damit ihr sehen könnt, dass es die selbe Anwendungsgebiet besitzt wie das if und else/else if.
Ich habe in diesem Beispiel Verzweigung und den Scanner, für das warten und lesen der Eingabe des Benutzers verantwortlich ist, eingefügt.
6 Scanner variableX_Y = new Scanner(System.in);
Fangen wir ab Zeile 6. Auf der Zeile 6 ist die erste Anweisung „Scanner“ Diese Angabe teilt dem Compiler mit, dass es sich um eine Anweisung handelt, welche eine Eingabe des Benutzers warten soll. Es ist bis jetzt unwichtig ob es sich hierbei um einen Zahlenwert oder um eine String Eingabe handeln soll. Das Zweite Wort „variableX_Y“ ist, wie der Name es schon sagt, eine Variable welches den eingegebenen Wert speichern soll. Danach schließen wir die Anweisung mit dem „= new Scanner(System.in);“ aus. Ich werde in dem folgenden Beispielen erörtern wozu das Schlüsselbegriff new und System.in stehen.

6 Scanner variableX_Y = new Scanner(System.in);
7 System.out.println("0=ADDITION");
8 System.out.println("1=SUBTRAKTION");
9 byte eingabe = variableX_Y.nextByte();

Zwischen Zeile 7 und 8 wird dem Benutzer eine sogenannte Menü/ Wegweiser angezeigt. Der Benutzer kann durch die Eingabe des Wertes 0 mit dem Addition und durch die Eingabe des Werts 1 Subtrahieren. In der Zeile 9 wird dem Compiler mitgeteilt, dass das Eingegebene Wert ein byte Datentyp mit dem Namen „eingabe“ haben soll. Danach wird mit dem befehl „variableX_Y.nextByte()“ das eingegebene String Wert in einem primitiven Datentyp umgewandelt.

Danach kommt das switch and case hier in Verwendung.

Ab Zeile 11 überprüft der Compiler welches Wert die Variable eingabe besitzt. Wenn es das Wert 0 besitzt wird der Benutzer in das Menü „Addition“ weitergeleitet wenn aber das Wert 1 ist wird es zur Menü „Subtraktion“ weitergeleitet. Wenn keines der beiden Werte eingegeben wurde. Kommt wird die Ausgabe in der Zeile 43 ausgegeben.

Kommentare

Beliebte Posts aus diesem Blog

How can I transform a .jar file to a .bat file?

Ein Kleines Spiel mit Altersabfrage

Zufallszahlen und Verzweigungen in Python