While Schleife bei Bedarf durch Eingabe stoppen

DerBär

Mitglied
Hallo liebe Java Community 🙂 ,
ich versuche aktuell eine while Schleife per Eingabe stoppen zu lassen.
Mein Problem ist, dass ich die Schleife gerne endlos laufen lassen möchte bis ich z.B. eine 0 zum stoppen eingebe.
Ich möchte nicht bei jedem Durchlauf eine 1 Eingeben damit es weitergeht, sondern möchte dies nur 1x machen um das Programm eben zu stoppen.
Hier mal mein erster Versuch welcher aber bei Ausführung mit einer Exception abbricht:
Code:
  int in = 1;
            Scanner sc = new Scanner (System.in);
            while(in ==1) {
                    //Mache irgendwas
                    in = sc.nextInt();
                    sc.close();
             
            }


Habt Ihr Ideen wie sowas gehen könnte? Ein Hotkey z.B. F12 oder so würde genauso gehen für mich.
 
Java:
Scanner scanner = new Scanner(System.in);
while(scanner.nextInt() != 1)
{
     System.out.println("Next number please");
     scanner.nextInt();
}
 
Java:
Scanner scanner = new Scanner(System.in);
while(scanner.nextInt() != 1)
{
     System.out.println("Next number please");
     scanner.nextInt();
}

Hi herzlichen Dank für deine Antwort, aber würde nicht auf diesem wege wie du es machst bei jedem Schleifendurchlauf das Programm solange stoppen bis du etwas eingegeben hast?
Ich suche halt einen Weg das die Schleife immer weiter läuft ohne, dass ich bei jedem Durchlauf aktiv etwas eingeben muss. Das Programm soll im Hintergrund laufen und erst nach Eingabe pausieren.

Edit:
Zudem erhalte ich leider auch bei deinem Code eine Exception, wenn ich Ihn in mein Programm Einbaue.
Hier mal die Exception/der Code aus meiner main Methode:
Code:
at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)

Und hier der Code aus meiner main (es handelt sich um einen kleinen bot,welcher in der Fifa19 WebAPP Fußballspieler kaufen soll):
Code:
    int startprog = s.nextInt();
        s.close();
        if (startprog == 1) {
            Scanner scanner=new Scanner(System.in);
            while(scanner.nextInt() != 0) {

                    Functions.searchPlayer(driver, wait);
                    Functions.buyNow(driver, wait);
                    Functions.siteBack(driver,wait);
                    System.out.println("Next number please");
                    scanner.nextInt();
                 
             
            }
            scanner.close();
         
        }
 
Zuletzt bearbeitet:
Hier mal mein erster Versuch welcher aber bei Ausführung mit einer Exception abbricht:
Die Exception kommt, wiel du nach dem ersten Schleifendurchlauf den Scanner schließt. Da ist es ja nur logisch, dass danach keine Eingabe mehr möglich ist.

Was genau willst du denn erreichen. Versuch es mal unabhängig von dem was du bereits hast mit Worten zu erklären.
 
Die Exception kommt, wiel du nach dem ersten Schleifendurchlauf den Scanner schließt. Da ist es ja nur logisch, dass danach keine Eingabe mehr möglich ist.
Da hast du natürlich Recht war ein schlampigkeitsfehler 🙁, aber die Exception erhalte ich auch jetzt noch wo er erst nach der Schleife geschlossen wird.
Was genau willst du denn erreichen. Versuch es mal unabhängig von dem was du bereits hast mit Worten zu erklären.
Also der Sinn meines Programms ist es im Hintergrund zu laufen und für das Spiel Fifa19 Spieler zu kaufen.
Bislang hatte ich dies in einer Endlosschleife gemacht, allerdings würde ich nun die Schleife gerne durch eine Eingabe oder einen Hotkey unterbrechen lassen, damit mein Programm erstmal stoppt.
Was ich natürlich nicht möchte ist, dass ich bei jedem Schleifendurchlauf jedes mal eine Eingabe tätigen muss.
Die Schleife soll weiterlaufen, wenn ich nichts eingegeben habe.
 
Zuletzt bearbeitet:
Würde einfach mal behaupten, dass das mit Java-Boardmitteln nicht ganz so einfach umsetzbar ist. Mir fällt spontan zumindest kein Weg ein
 
Würde einfach mal behaupten, dass das mit Java-Boardmitteln nicht ganz so einfach umsetzbar ist. Mir fällt spontan zumindest kein Weg ein

Hmm das wäre sehr schade.
Ich habe vor 1-2 Jahren mal paar ganz kleine Sachen in C++ programmiert, da war das soweit ich mich erinnern kann mit tricks möglich .
Ich meine letzten Endes wäre das sowieso mal ein Grund sich in GUI programmierung einzulesen, nur habe da aktuell viel zu wenig Zeit zu 🙁 .
Falls sich doch noch jmd. findet der einen Weg kennt ich wäre sehr dankbar 🙂.
Euch allen aufjedenfall schonmal vielen Dank für die schnelle Unterstützung, super Forum hier!
 
C++ ist halt doch etwas spezieller und näher an der Hardware - daher kann man damit mehr machen.
Aber vielleicht kennt ja jemand einen Weg wie es auch mit Java geht. Vielleicht gibt es ja ein Framework o.ä.
 
Ich suche und suche und finde keinen Hinweis darauf, dass hier irgendwas über die Konsolenausgabe laufen würde :-(
 

Zurück
Oben