-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!");
        }
    }
}

問題は、ユーザーが無効な成績を入力すると、「無効な成績です!」というメッセージが表示されることです。メッセージが表示され、「OK」を押した後、閉じます。

無効な成績のメッセージの後、プログラムを入力ステージに戻すにはどうすればよいですか?

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 に答える