kostenloser Webspace werbefrei: lima-city


Eingaben von der Konsole einlesen mit Schleife/Abfrage

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    koss

    koss hat kostenlosen Webspace.

    Hi Leute,

    ich kenne mich bei Java nicht mit Konsoleneingaben und -abfragen aus.


    Es sollen immer wieder Eingaben von einer Konsole eingelesen und dafür eine System.in verwendet werden.

    Mein Probleme:
    1. Wie sieht "System.in" aus?

    1.Ich müsste bei meinem Code eine Schleife bei der Konsoleneingabe ansetzen und möchte dabei abfragen ob z.B. "stop" eingegeben wurde, um das Einlesen zu beenden. Wie kann ich also [if = "stop" -> end, else -> einlesen] bewerkstelligen, oder gibt es einen besseren Weg?


    import java.util.*;
    import java.io.*;
    
    public class Konsoleneingabe {
       private Scanner scanner;
       
       public Konsoleneingabe() {
          scanner = new Scanner(System.in);
       }
       
       public String eingabeLesen() {
          System.out.print("Eingabe: ");      
          return scanner.nextLine();
       }
       
       private void ausgeben(String str) {
          System.out.println(str);
       }
       
       public static void main(String[] args) {
          Konsoleneingabe konsole = new Konsoleneingabe();
          konsole.ausgeben(konsole.eingabeLesen());
       }
    
    }


    Gruß koss

    Beitrag zuletzt geändert: 15.1.2011 20:03:30 von koss
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Moin,

    1. System.in ist der Standard-Stream der von der Tastatur einliest.

    2. So etwas wird im Regelfall per while-Schleife und - wie Du schon vermutest - einer if-Abfrage durchgeführt.

    Minimales Beispiel:

    boolean quit = false;
    
    while(!quit) {
      if(eingabe.equals("stop") {
        quit = true;
      }
    }


    Hoffe, geholfen zu haben.

    Gruß,
    Pawnee
  4. Autor dieses Themas

    koss

    koss hat kostenlosen Webspace.

    Der Code mal exemplarisch gekürzt:

    import java.util.*;
    
    public class Eingabe {
       private Scanner scanner;
       
       public Eingabe() {
          scanner = new Scanner(System.in);
          boolean quit = false;
    
          while(!quit){
          if(scanner.next().equals("stop")) {quit = true;}
          else {System.out.print("Eingabe: ");}
        }
       }
     }


    Wenn ich das ganze ausführe, ist die virtuelle Maschine überlastet, also scheint die Schleife nicht ganz sauber zu sein?

    Das Problem hatte ich vorher auch immer... oder ich habe irgendetwas übersehen..

    Beitrag zuletzt geändert: 15.1.2011 23:20:47 von koss
  5. Moin,

    also der Code schaut für mich richtig aus.
    Was meinst Du denn mit "überlastet"?

    Hier mein Beispielcode, der sich nicht wirklich von Deinem unterscheidet:

    import java.util.Scanner;
    
    public class Test {
        public Test() {
            Scanner sc   = new Scanner(System.in);
            boolean quit = false;
    
            while (!quit) {
                System.out.print("Eingabe: ");
                if (sc.next().equalsIgnoreCase("stop")) {
                    quit = true;
                } else {
                    System.out.println("Nochmal");
                }
            }
        }
    
        public static void main(String[] args) {
            new Test();
        }
    }

    Gruß,
    Pawnee
  6. Autor dieses Themas

    koss

    koss hat kostenlosen Webspace.

    Die Konsole hatte nur einen Fehler, nach Neustart des System ging alles, Danke!
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!