我们正在进行小组作业。该计划的一部分用于输入“支付”,然后是学生的SIN(社会保险号码),以及按多少扣除其帐户。例如,pay,193678187,900
。如何使用!.equals和字符串?
将SIN与来自文件的SIN列表进行比较,生成一个数组并进行比较,curSin.equals(stuSin))
。 curSin
和stuSin
都是字符串。
如果找到SIN,它将减少学生余额(未显示)的金额并将其写入文件write(student,inrec)
。
如果未找到SIN,则应返回“SIN未找到”。
我们的问题是,即使找到SIN,它仍然会返回“SIN未找到”。我们认为这与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
}
调试!在if之前加上'System.out.println(cmd)'。另外'p.length == 3'是多余的。 – 2012-04-11 20:00:44
为什么在你的陈述中你有一个条件?你在第一个if(if(curSin.equals(stuSin)))中检查相同的条件。 – 2012-04-11 20:00:46
@TomaszNurkiewicz我不认为p.length是多余的。由于这只是一个代码片段,所以不可能告诉,但我猜想这是需要的。 – emory 2012-04-11 20:08:09