-1

我用Java制作了一个小程序:

        String grade = JOptionPane.showInputDialog("What is your grade?");
        switch (grade)
        {
            case "A":
                JOptionPane.showMessageDialog(null, "You got an A - Well done!");
                break;

            case "B":
                JOptionPane.showMessageDialog(null, "You got a B - Very good!");
                break;

            case "C":
                JOptionPane.showMessageDialog(null, "You got a C - Good!");
                break;

            case "D":
                JOptionPane.showMessageDialog(null, "You got a D - Study better next time!");
                break;

            default:
                JOptionPane.showMessageDialog(null, "Invalid grade!");
        }
    }
}

现在,问题是——如果用户输入了一个无效的成绩,“无效的成绩!” 出现消息,按“确定”后它就关闭了。

成绩无效提示后如何让程序返回输入阶段?

4

2 回答 2

2

使用do-while带有标志的循环:

boolean wrongInput = false;

do {
    wrongInput = false; 
    String grade = JOptionPane.showInputDialog("What is your grade?");
    switch (grade)
    {
        case "A":
            JOptionPane.showMessageDialog(null, "You got an A - Well done!");
            break;

        case "B":
            JOptionPane.showMessageDialog(null, "You got a B - Very good!");
            break;

        case "C":
            JOptionPane.showMessageDialog(null, "You got a C - Good!");
            break;

        case "D":
            JOptionPane.showMessageDialog(null, "You got a D - Study better next time!");
            break;

        default:
            JOptionPane.showMessageDialog(null, "Invalid grade!");
            wrongInput = true;
    }

} while(wrongInput);
于 2013-09-22T12:01:18.093 回答
0

你可以用一个while循环和一个标签来做到这一点:

loop: while (true) {

    String grade = JOptionPane.showInputDialog("What is your grade?");
    switch (grade)
    {
    case "A":
        JOptionPane.showMessageDialog(null, "You got an A - Well done!");
        break loop;

    case "B":
        JOptionPane.showMessageDialog(null, "You got a B - Very good!");
        break loop;

    case "C":
        JOptionPane.showMessageDialog(null, "You got a C - Good!");
        break loop;

    case "D":
        JOptionPane.showMessageDialog(null, "You got a D - Study better next time!");
        break loop;

    default:
        JOptionPane.showMessageDialog(null, "Invalid grade!");
    }
}
于 2013-09-22T12:02:55.690 回答