Ich habe mehrere ähnliche Fragen überprüft und, wenn ich die häufig vorgeschlagene Antwort anwendete, wurde eine Bedingung, die hätte funktionieren sollen, nicht erfüllt.Java - Scanner NoSuchElementException: Keine Zeile gefunden
Mit diesem Code
import java.util.Scanner;
Scanner console = new Scanner(System.in);
// ...various code here...
public void printMenu()
{
while (true)
{
System.out.println("\nPlease make a selection:\n"
+ "1) Access account\n"
+ "2) Open a new Account\n"
+ "3) Exit");
String selection = console.nextLine();
if (selection.equals("1")) enterPin();
else if (selection.equals("2")) newOrReturning();
else if (selection.equals("3"))
{
System.out.println("Thank you for using the BSU Banking App");
System.exit(0);
}
else System.out.println("Invalid entry");
}
}
ich die Störung erhalte,
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at Menu.printMenu(Menu.java:56)
at Menu.runMenu(Menu.java:31)
at Main.main(Main.java:29)
Es wurde vorgeschlagen, dass while(console.hasNextLine())
vor console.nextLine()
verwendet werden, aber wenn ich beschäftigt, dass
public void printMenu()
{
while (console.hasNextLine())
{
System.out.println("\nPlease make a selection:\n"
+ "1) Access account\n"
+ "2) Open a new Account\n"
+ "3) Exit");
String selection = console.nextLine();
if (selection.equals("1")) enterPin();
else if (selection.equals("2")) newOrReturning();
else if (selection.equals("3"))
{
System.out.println("Thank you for using the BSU Banking App");
System.exit(0);
}
else System.out.println("Invalid entry");
}
}
Jetzt führt es nicht einmal den Code aus, was impliziert, dass es keine nextLine gibt. Irgendwelche Vorschläge? Ich entschuldige mich, wenn ich Informationen verpasst habe - wenn es soweit ist, werde ich sofort bearbeiten.
Edit: erklärte mein Problem falsch.
Statt uns zu fragen, dies für Sie zu lösen, können Sie einen Debugger verwenden soll. Setze einen Haltepunkt, single step den Code, um zu sehen, was passiert, untersuche die Werte/Objekte in den Variablen, die das Programm benutzt. –
bitte try boolean trueOrFalse = true; und dann setze es in deine Testbedingung für die while-Schleife und dann bei if (selection.equals ("3") {trueOrFalse = false;} – abcOfJavaAndCPP
Ich entschuldige mich - ich habe mehr nach Vorschlägen gefragt, als dass jemand die ganze Kleinarbeit für mich erledigt hat. Ich werde das tun, danke. –