我们正在进行小组作业。程序的一部分是让用户输入“pay”,然后输入学生的社会保险号(SIN)和要扣除的金额。例如:
将SIN与文件中的SIN列表进行比较,生成一个数组并进行比较,
如果找到了SIN,则会从学生的余额(未显示)中减去相应的金额,并将其写入文件
如果未找到SIN,则应返回“SIN not found”。
我们的问题是,即使找到了SIN,它仍然返回“SIN not found”。我们认为这与if语句和不等式比较有关,但我们已经尝试了我们能想到的一切,但无法使其正常工作。
非常感谢您的帮助。 谢谢。
以下是代码片段。
pay,193678187,900
。将SIN与文件中的SIN列表进行比较,生成一个数组并进行比较,
curSin.equals(stuSin))
。其中curSin
和stuSin
都是字符串。如果找到了SIN,则会从学生的余额(未显示)中减去相应的金额,并将其写入文件
write(student,inrec)
。如果未找到SIN,则应返回“SIN not found”。
我们的问题是,即使找到了SIN,它仍然返回“SIN not found”。我们认为这与if语句和不等式比较有关,但我们已经尝试了我们能想到的一切,但无法使其正常工作。
非常感谢您的帮助。 谢谢。
以下是代码片段。
if (cmd.equals("pay") && p.length == 3)
{ // first word is "pay";three terms (cmd, sin, $)
System.out.println("pay");
// Pay: decreases student payment, notifies of overpayment
String stuSin = p[1];
double stupay = Double.parseDouble(p[2]);
for (int i = 0; i < student.length; i++)
{
Student x1 = student[i];
String curSin = x1.getSin();
if (curSin.equals(stuSin))
{
double curpay = x1.getBal();
double newBal = curpay - stupay;
if (stupay > curpay)
{
JOptionPane.showMessageDialog(null, "Overpayment");
System.exit(0);
}
x1.setBal(newBal);
System.out.println(x1.getBal());
write(student, inrec);
}
else if (!curSin.equals(stuSin))
{
JOptionPane.showMessageDialog(null, "SIN not found"); // sin not found
System.exit(0);
}
}// end of for loop
}
System.out.println(cmd)
。同时,“p.length==3”是多余的。 - Tomasz Nurkiewicz{
放在新行或上一行提出异议,但基本的缩进(无论您选择哪种变体)都非常重要。我重新格式化了代码以使其更易读。 - Jim Garrison