输入负数后,循环不会结束,直到用户输入所有值。

时间:2014-02-16 10:38:40

标签: java

我希望程序在用户输入小于零的值后立即结束,但此程序会继续询问所有三个值然后退出。

例如,如果我输入-3,2,1,程序在第一个高度输入-3后不显示错误,而是取全部三个值然后显示“无效高度”消息。

如果用户输入负值,如何使程序显示无效高度错误信息?

//Program Asking user to input three different heights
HeightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First    Tower"));

HeightTwo = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of Second 
Tower"));

HeightThree = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of Third               Tower"));

If (centimeterHeightOne < 0 || centimeterHeightTwo < 0 || centimeterThree < 0) 
{
    JOptionPane.showMessageDialog(null, "Invalid height";
}
else 
{
   conditions...
}

2 个答案:

答案 0 :(得分:4)

  

在用户完成前输入负数时,循环不会结束   输入所有值。

因为这正是你正在做的事情。如果您想在一个负值后终止,请在您要求每个输入后立即放置if

heightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First  Tower"));
if(heightOne < 0) {
    displayError();
    //return; ?
}
heightTwo = ...
if(heightTwo < 0) {
    displayError();
}
...

请关注Java Naming Conventions并将HeightOne更改为heightOne

答案 1 :(得分:0)

您需要在每个值之后加入检查,例如

heightOne = Integer.parseInt(JOptionPane.showInputDialog("Enter Height of First Tower"));
if (heightOne < 0) {
    JOptionPane.showMessageDialog(null, "Invalid height");
    return;
}

return语句将中止当前方法并返回,如果当前方法为main,程序将停止。如果您不在main方法中,但仍希望强制退出该计划,则可以通过调用System.exit()来执行此操作。