グループ課題に取り組んでいます。プログラムの一部は、「支払い」を入力するために使用され、その後に学生の SIN (社会保険番号) と口座から差し引かれる金額が続きます。たとえば、pay,193678187,900
.
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
}