我在这里错过了什么?循环使用对话框

时间:2017-03-03 03:07:21

标签: java

我不确定为什么这段代码不起作用。

我想在用户选择是或否之后会出现另一个对话框,但每当我运行程序时,它会询问是否为否,然后没有任何反应。

关于我需要做什么的任何想法?

    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);

}

}

2 个答案:

答案 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的窗格,并且不接受输入。这条线不需要在那里,所以你应该删除它。否则你的代码工作正常。