在以下代码循环中的if语句中,如果给定的oldsalary [i]不符合这些准则,我想将oldsalary [i]的先前数值恢复为“ Error”。但是,我希望它保持为oldsalary [i],因为稍后将在代码中显示所有oldsalary [i]。
因此,基本上,当所有oldsalary [i]在另一个循环中显示时,我希望能够看到“ Error”,因此可以知道该值有问题。
我知道我拥有它的方式是完全错误的,我只是这样说才有意义。对不起,如果没有任何意义。
if(oldsalary[i] < 25000 || oldsalary[i] > 1000000){
JOptionPane.showMessageDialog(null, userinput[i]+"'s salary is not within
necessary limit.\n Must be between $25,000 and $1,000,000. \n If salary is
correct, empolyee is not eligible for a salary increase.");
double oldsalary[i] = "Error";
}
最佳答案
您不能将数值和错误指示符都存储在单个double
值中。
最好的选择是将薪水包装为一个对象,该对象同时包含薪水值和指示错误条件的布尔值:
class Salary {
private double value;
private boolean error = false;
... constructor, getters and setters
}
并更新您的代码以使用该对象。即
if(oldsalary[i].getValue() < 25000 || oldsalary[i].getValue() > 1000000) {
oldsalary[i].setError(true);
...
}
所以以后你可以做
if (oldsalary[i].isError()) {
// display error message
}