-3
私はサイドプロジェクトの給与計算システムを作成しています。私は入れ子のifステートメントを使用して、ユーザーが選択した請求スケジュール(52または26)を確認してから、総賃金、税金およびその他の控除を計算します。 52週の賃金表は正しく機能しますが、26週間の賃金表には値が表示されません。ネストされたIf文が正しく表示されない
double hoursWorked = Double.parseDouble(txtHoursWorked.getText());
double hourlyRate = Double.parseDouble(txtHourlyPay.getText());
double overtimeHours = Double.parseDouble(txtOvertimeHours.getText());
double overtimeRate = Double.parseDouble(txtOvertimePay.getText());
// Declare variables
double basicPay;
double overtimePay;
double grossPay;
double taxes;
double yearlyCompensation;
double cpp;
double ei;
double deductions;
double netPay;
if (cmbPayPeriod.getSelectedItem().equals("52 Week Pay Period")) {
grossPay = basicPay + overtimePay;
txtGrossPay.setText(x.format(grossPay));
yearlyCompensation = grossPay * 52;
if (yearlyCompensation < 45282) {
taxes = (yearlyCompensation * 0.15)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
netPay = grossPay - deductions;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
txtNetPay.setText(x.format(netPay));
}
else if (yearlyCompensation < 90536) {
taxes = (yearlyCompensation * 0.205)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
netPay = grossPay - deductions;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
txtNetPay.setText(x.format(netPay));
}
else if (yearlyCompensation < 140388) {
taxes = (yearlyCompensation * 0.265)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
netPay = grossPay - deductions;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
txtNetPay.setText(x.format(netPay));
}
else if (yearlyCompensation < 200000) {
taxes = (yearlyCompensation * 0.29)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
netPay = grossPay - deductions;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
txtNetPay.setText(x.format(netPay));
}
else {
taxes = (yearlyCompensation * 0.33)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
netPay = grossPay - deductions;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
txtNetPay.setText(x.format(netPay));
}
if (cmbPayPeriod.getSelectedItem().equals("n")) {
grossPay = (basicPay + overtimePay) * 2;
txtGrossPay.setText(x.format(grossPay));
yearlyCompensation = grossPay * 26;
if (yearlyCompensation < 45282) {
taxes = (yearlyCompensation * 0.15)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
}
else if (yearlyCompensation < 90536) {
taxes = (yearlyCompensation * 0.205)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
}
else if (yearlyCompensation < 140388) {
taxes = (yearlyCompensation * 0.265)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
}
else if (yearlyCompensation < 200000) {
taxes = (yearlyCompensation * 0.29)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
}
else {
taxes = (yearlyCompensation * 0.33)/52;
cpp = (yearlyCompensation * 0.0495)/52;
ei = (yearlyCompensation * 0.0163)/52;
deductions = taxes + cpp + ei;
txtTaxP.setText(x.format(taxes));
txtCPP.setText(x.format(cpp));
txtEI.setText(x.format(ei));
txtDeductions.setText(x.format(deductions));
}
}
}
誰も200行のコードを読みたくありません。これを[mcve]に減らしてください。 –
デバッガでコードを歩いていたときにはどうなりましたか? – Kon
あなたはこのテストがあなたが望むものであることを確信していますか?if(cmbPayPeriod.getSelectedItem()。equals( "n")) '? –