我希望程序在用户输入小于零的值后立即结束,但此程序会继续询问所有三个值然后退出。
例如,如果我输入-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...
}
答案 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()
来执行此操作。