通过循环进行Java整数确认

时间:2013-06-09 00:50:26

标签: java loops integer or-operator

for (int i = 0; i < fields.length; i++)
{
    for (int j = 0; j < fields[i].length; j++)
    {
        if (fields[i][j].getText().length() == 0) //IF ZERO OR NOT A NUMBER
        {
            JOptionPane.showMessageDialog(null, "Answers missing");
            return;
        }
        answers[i][j] = Integer.parseInt(fields[i][j].getText());
    }
}

如何断言用户输入一个数字(零除外)?是否可以使用OR运算符(||)将其添加到if语句中?

1 个答案:

答案 0 :(得分:1)

我会在解析int的行周围添加一个try-catch块,并让它捕获NumberFormatException。这样,如果用户没有输入具有“可解析整数”的字符串,则程序不会崩溃。您可以将JOptionPane消息放入catch块中。这也将捕获字符串长度为0的情况,因此您可能不需要if语句。您可以使用if语句轻松测试数字是否为零。

以下是我编码的方法。

for (int i = 0; i < fields.length; i++)
{
    for (int j = 0; j < fields[i].length; j++)
    {

        try {
            int probableAnswer = Integer.parseInt(fields[i][j].getText());

            if(probableAnswer == 0) {
             JOptionPane.showMessageDialog(null, "Answers missing");
            }
            else {
                answers[i][j] = probableAnswer;
            }

        } //end try block
        catch(NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Answers missing");
        }
    }
}

http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html#parseInt(java.lang.String)