在我的代码中的循环中的以下if语句中,如果给定的oldsalary [i]不符合这些准则,我想将oldsalary [i]的先前数值恢复为“Error”。但是我希望它保持原样[i],因为我将在我的代码中稍后显示所有旧工具[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";
}
答案 0 :(得分:2)
您不能将数值和都存储在单个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
}
答案 1 :(得分:0)
您可以使用额外的List来存储未通过您的需求测试的索引。
List<Integer> invalidIndices = new ArrayList<>();
for (...){
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.");
invalidIndices.add(i);
}
}