Java 无效输入仍会更新总数
[编辑] 似乎将这段代码移到其他地方可以解决我的问题,但我看不出在哪里Java 无效输入仍会更新总数,java,Java,[编辑] 似乎将这段代码移到其他地方可以解决我的问题,但我看不出在哪里 if (numLeaving < MIN_PEOPLE || numEntering < MIN_PEOPLE || totalPeople < MIN_PEOPLE) { JOptionPane.showMessageDialog(null,"Invalid data"); } 您的程序不会在任何地方说负数是无效输入。-=and+=运算符只适用于负整数 [编辑] 假设您
if (numLeaving < MIN_PEOPLE || numEntering < MIN_PEOPLE || totalPeople < MIN_PEOPLE) {
JOptionPane.showMessageDialog(null,"Invalid data");
}
您的程序不会在任何地方说负数是无效输入。-=and+=运算符只适用于负整数 [编辑] 假设您选择“离开”,并提供numLeaving=-65,则总人数将为0-(-65)=65。您将输入下面代码的if块,而不是检查负输入的else块
if (totalPeople > MAX_PEOPLE) {
invalid = false;
totalPeople = totalPeople - numEntering;
JOptionPane.showMessageDialog(null,"Capacity exceeded\n" + "Total people = " + totalPeople);
}
else if (numLeaving < MIN_PEOPLE || numEntering < MIN_PEOPLE || totalPeople < MIN_PEOPLE) {
JOptionPane.showMessageDialog(null,"Invalid data");
}
else {
JOptionPane.showMessageDialog(null,"Total people = " + totalPeople);
}
if(总人数>最大人数){
无效=错误;
totalPeople=totalPeople-numEntering;
JOptionPane.showMessageDialog(null,“超出容量”\n“+”总人数=“+totalPeople”);
}
否则如果(numLeaving
您的程序在任何地方都不会说负数是无效输入。-=and+=运算符只适用于负整数
[编辑]
假设您选择“离开”,并提供numLeaving=-65,则总人数将为0-(-65)=65。您将输入下面代码的if块,而不是检查负输入的else块
if (totalPeople > MAX_PEOPLE) {
invalid = false;
totalPeople = totalPeople - numEntering;
JOptionPane.showMessageDialog(null,"Capacity exceeded\n" + "Total people = " + totalPeople);
}
else if (numLeaving < MIN_PEOPLE || numEntering < MIN_PEOPLE || totalPeople < MIN_PEOPLE) {
JOptionPane.showMessageDialog(null,"Invalid data");
}
else {
JOptionPane.showMessageDialog(null,"Total people = " + totalPeople);
}
if(总人数>最大人数){
无效=错误;
totalPeople=totalPeople-numEntering;
JOptionPane.showMessageDialog(null,“超出容量”\n“+”总人数=“+totalPeople”);
}
否则如果(numLeaving
之所以仍在更新“totalPeople”,是因为您没有在循环开始时检查它是否为有效输入。如果我是你,我会在while循环的开头添加以下代码:
if(totalPeople < 0){
invalid = false;
break;
}
if(总人数<0){
无效=错误;
打破
}
我还发现用否定的方式命名布尔值有点误导。如果一个名为“invalid”的布尔值为true,就会产生一个问题:“true代表valid还是invalid?”
我会将布尔值命名为“valid”。之所以仍在更新“totalPeople”,是因为您没有在循环开始时检查它是否为有效输入。如果我是你,我会在while循环的开头添加以下代码:
if(totalPeople < 0){
invalid = false;
break;
}
if(总人数<0){
无效=错误;
打破
}
我还发现用否定的方式命名布尔值有点误导。如果一个名为“invalid”的布尔值为true,就会产生一个问题:“true代表valid还是invalid?”
我会将布尔值命名为“valid”。else if(numLeaving