Java 我试图设置一个只输入整数的要求,如果输入了其他任何内容,则显示错误消息 ans=JOptionPane.showInputDialog(null,“当前有”+clubSize+“人在里面”+ “\n今天有多少人参加你的聚会。”); 国际合作组织; 尝试 { partyIn=Integer.parseInt(ans); } 捕获(数字格式) { showMessageDialog(null,“您输入的不是数字:”+ans); } if(clubSize+partyIn

Java 我试图设置一个只输入整数的要求,如果输入了其他任何内容,则显示错误消息 ans=JOptionPane.showInputDialog(null,“当前有”+clubSize+“人在里面”+ “\n今天有多少人参加你的聚会。”); 国际合作组织; 尝试 { partyIn=Integer.parseInt(ans); } 捕获(数字格式) { showMessageDialog(null,“您输入的不是数字:”+ans); } if(clubSize+partyIn,java,if-statement,joptionpane,Java,If Statement,Joptionpane,使用以下事实:如果输入的数字不是实数,则Integer.parseInt将抛出NumberFormatException。捕获该异常,然后通知用户错误 ans = JOptionPane.showInputDialog(null,"There are currently "+clubSize+" people inside right now" + "\nHow

使用以下事实:如果输入的数字不是实数,则
Integer.parseInt
将抛出
NumberFormatException
。捕获该异常,然后通知用户错误

        ans = JOptionPane.showInputDialog(null,"There are currently "+clubSize+" people inside right now" +
                                                            "\nHow many People are in your party today.");
        int partyIn;
        try
            {
           partyIn = Integer.parseInt(ans);
            }
        catch (NumberFormatException e)
            {
           JOptionPane.showMessageDialog(null, "What you entered was not a number: " + ans);
            }
        if (clubSize + partyIn <= 125)
            {
            clubSize = clubSize + partyIn; 
            peopleIn = peopleIn + partyIn;
            }
        else
            {
            JOptionPane.showMessageDialog(null, "Sorry you have to many people in your party");
            }

我以前从未使用过try或catch代码,因此如果这是一个愚蠢的问题,请原谅,但我在上面编辑了我的代码,并按照您的方式进行了编辑,但出现了一个错误。我们在这里所做的是创建了
partyIn
变量未初始化的可能性。假设您的代码位于方法中,请尝试使用
return
语句,这样,如果代码通过catch块,那么编译器就知道
parseInt
成功了,并且
partyIn
已经初始化。添加return语句允许它编译并发送错误消息,但它只是结束程序,我是否只是在循环中添加到g让它再问一次问题?实际上,为了让它发挥作用,我在一个while(真的)循环中添加了一个break,在catch中添加了一个break,而不是return,这似乎很有效。不过谢谢你的帮助。
int partyIn;
try
{
   partyIn = Integer.parseInt(ans);
}
catch (NumberFormatException e)
{
   JOptionPane.showMessageDialog(null, "What you entered was not a number: " + ans);
}