Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
While循环问题(Java)_Java_While Loop_Numberformatexception - Fatal编程技术网

While循环问题(Java)

While循环问题(Java),java,while-loop,numberformatexception,Java,While Loop,Numberformatexception,我试图创建一个while循环,如果用户使用了无效条目,它会提示用户重新输入数据。在我的程序中,我要求用户输入一个数字(0-3),因此,如果他们输入的不是这个数字,我希望弹出一条错误消息,要求他们重新输入数据。我不知道我在循环中做错了什么。无论我输入什么,我都会收到错误消息 String itemChoice = JOptionPane.showInputDialog(null, itemList); itemChoiceNum = Integer.parseInt(itemChoice)

我试图创建一个while循环,如果用户使用了无效条目,它会提示用户重新输入数据。在我的程序中,我要求用户输入一个数字(0-3),因此,如果他们输入的不是这个数字,我希望弹出一条错误消息,要求他们重新输入数据。我不知道我在循环中做错了什么。无论我输入什么,我都会收到错误消息

String itemChoice = JOptionPane.showInputDialog(null, itemList);
    itemChoiceNum = Integer.parseInt(itemChoice);

    //test to make sure the input is valid
    while (itemChoiceNum != 0 || itemChoiceNum != 1 || itemChoiceNum != 2 || itemChoiceNum != 3) {
        JOptionPane.showMessageDialog(null, "Sorry that's not a valid choice. Please start again.");
        itemChoice = JOptionPane.showInputDialog(null, itemList);
    }
数字格式异常

    while (itemChoiceNum != 0 && itemChoiceNum != 1 && itemChoiceNum != 2 && itemChoiceNum != 3) {
        try {
            JOptionPane.showMessageDialog(null, "Sorry that's not a valid choice. Please start again.");
                                        itemChoice = JOptionPane.showInputDialog(null, itemList);
                                        itemChoiceNum = Integer.parseInt(itemChoice);
        }

        catch (NumberFormatException itemChoiceNum ) {
            JOptionPane.showMessageDialog(null, "Sorry that's not a valid choice. Please start again.");
        }
错误


你的逻辑不正确。选择不是0、不是1或不是2总是正确的;您需要使用
&&
运算符的“and”

while (itemChoiceNum != 0 && itemChoiceNum != 1 && itemChoiceNum != 2 && itemChoiceNum != 4) {

你的逻辑不正确。选择不是0、不是1或不是2总是正确的;您需要使用
&&
运算符的“and”

while (itemChoiceNum != 0 && itemChoiceNum != 1 && itemChoiceNum != 2 && itemChoiceNum != 4) {

在while条件下使用should
&
而不是
|
。到目前为止,它总是返回True。

在while条件下使用should
&
而不是
|
。到目前为止,它总是返回True。

接下来,如果用户输入字符串,是否有办法显示错误消息?当我输入字符串时,程序崩溃。捕获
NumberFormatException
Integer.parseInt
抛出的
NumberFormatException,并向用户显示带有适当错误消息的消息对话框。我做得对吗?我用我添加的内容更新了我的问题。当我写一封信时,它仍然崩溃。我将错误添加到我的问题中。接下来,如果用户输入字符串,是否有方法也显示错误消息?当我输入字符串时,程序崩溃。捕获
NumberFormatException
Integer.parseInt
抛出的
NumberFormatException,并向用户显示带有适当错误消息的消息对话框。我做得对吗?我用我添加的内容更新了我的问题。当我写一封信时,它仍然崩溃。我在我的问题上加了这个错误。