我不确定为什么这段代码不起作用。
我想在用户选择是或否之后会出现另一个对话框,但每当我运行程序时,它会询问是否为否,然后没有任何反应。
关于我需要做什么的任何想法?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int max = 0;
int min = Integer.MAX_VALUE;
String number;
boolean yn = true;
do {
number = JOptionPane.showInputDialog("Please enter a number");
int num = Integer.parseInt(number);
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
System.out.println(min + " " + max);
JOptionPane.showInputDialog("Would you like to enter another number? (y/n)");
String ny = in.nextLine();
if (ny.equals("n")) {
yn = false;
}
JOptionPane.showInputDialog(ny);
} while (yn == true);
JOptionPane.showMessageDialog(null, "The max number is " + max + " and the mininum number is " + min);
}
}
答案 0 :(得分:0)
程序停止
String ny = in.nextLine();
根据第一行定义的扫描程序等待System.in的输入。
如果您输入&#39; n&#39;在控制台上按Enter键,然后程序继续并显示下一个对话框。
我猜你想说:
String ny = JOptionPane.showInputDialog("Would you like to enter another number? (y/n)");
答案 1 :(得分:0)
您遇到的问题是您不接受来自面板的输入,而是从控制台获取输入。要解决这个问题,请将ny设置为等于JPane的输入,如下所示:
String ny = JOptionPane.showInputDialog("Would you like to enter another number? (y/n)");
然而,还有另一个问题,就是这一行:
JOptionPane.showInputDialog(ny);
它会创建一个您不需要显示y或n的窗格,并且不接受输入。这条线不需要在那里,所以你应该删除它。否则你的代码工作正常。