有人可以解释我在遇到“超出容量”消息后如何不使用中断或system.exit而结束程序,但是如果未到达消息则继续提示“离开”并“进入”吗?
同样,对于“容量超出”消息,它还会显示totalPeople。无论我进入还是离开,此部分中的totalPeople都会变成很多人。在输入休假或输入值以使其超过容量之前,我该如何使它成为存储的totalPeople?
int numLeaving = Integer.parseInt(JOptionPane.showInputDialog("number leaving"));
int numEntering = Integer.parseInt(JOptionPane.showInputDialog("number entering:"));
while (totalPeople <= 65 && totalPeople >= 0) {
try {
if (numLeaving >= 0 && numEntering >= 0) {
totalPeople = (totalPeople + numEntering) - numLeaving;
JOptionPane.showMessageDialog(null,"Total people = " + totalPeople);
}
else {
JOptionPane.showMessageDialog(null,"Invalid data");
}
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Enter numbers only");
}
if (totalPeople > 65) {
JOptionPane.showMessageDialog(null,"Capacity exceeded\n" + "Total people = " + totalPeople);
}
numLeaving = Integer.parseInt(JOptionPane.showInputDialog("number leaving"));
numEntering = Integer.parseInt(JOptionPane.showInputDialog("number entering:"));
}
最佳答案
我认为您应该保留可以输入常量的人数限制。像这样:
static final int maximumPeople = 65;
因此,现在您可以将其用于循环条件以及所需的条件:
while (totalPeople <= maximumPeople && totalPeople >= 0)
{
//code
}
if (totalPeople > maximumPeople) {
//code
}
在您的情况下,另一个要修改的变量是
totalPeople
。在这种情况下,您可以显示可输入的人员总数的消息:if (totalPeople > maximumPeople)
{
JOptionPane.showMessageDialog(null,"Capacity exceeded\n" + "Total people = " + maximumPeople);
}
但这也将导致循环,因为您使用的是totalPeople(已输入的实际人数)。
希望对您有帮助!