如果我的用户输入了一个错误的输入,程序会告诉他们再试一次,并让输入测试输入是否良好。
我的代码包括:
public void displayMenu() {
Scanner scanner = new Scanner(System.in);
String choice = "0";
while (!(choice.equals("4"))) {
System.out.println("1. Display Audio Files");
System.out.println("2. Display Compact Discs");
System.out.println("3. Display Vinyl Records");
System.out.println("4. Exit");
if (scanner.hasNextInt()) {
choice = scanner.nextLine();
System.out.println(choice);
if (choice.equals("1")) {
//Display the audio Files from musicLibrary library
//library.displayChoice("af");
}
if (choice.equals("2")) {
//Display the compact Discs from musicLibrary library
//library.displayChoice("cd");
}
if (choice.equals("3")) {
//Display the Vinyl Records from musicLibrary library
library.displayChoice("vr");
}
}
else {
System.out.println("You gave a bad input! Try again!!!");
choice = scanner.nextLine();
//System.out.println("1. Display Audio Files");
//System.out.println("2. Display Compact Discs");
//System.out.println("3. Display Vinyl Records");
//System.out.println("4. Exit");
//choice = scanner.nextLine();
}
}
System.out.println("Bye Bye :]");
scanner.close();
}
现在,它只会在while循环下重复系统输出,我不知道为什么。我正在打印用户提供的输入,以帮助调试,但我仍然不知道出了什么问题。
对我怎么处理这件事有什么想法吗?
发布于 2022-10-23 09:56:22
import java.util.Scanner;
public class Main {
public static void printOptions() {
System.out.println("1. Display Audio Files");
System.out.println("2. Display Compact Discs");
System.out.println("3. Display Vinyl Records");
System.out.println("4. Exit");
}
public static void close(Scanner scanner) {
System.out.println("Bye Bye :]");
scanner.close();
}
public static void displayMenu() {
Scanner scanner = new Scanner(System.in);
String choice;
printOptions();
while (true) {
if (scanner.hasNextInt()) {
choice = scanner.nextLine();
switch (choice) {
case "1" -> System.out.println("1");
case "2" -> System.out.println("2");
case "3" -> System.out.println("3");
case "4" -> {
close(scanner);
return;
}
default -> {
System.out.println("You gave a bad input! Try again!!!");
}
}
} else {
close(scanner);
return;
}
}
}
public static void main(String[] args) {
displayMenu();
}
}https://stackoverflow.com/questions/74170037
复制相似问题