这是注册类,存储为Registration.java。

public class Registration {
    int registrationId;
    double fees;
    int marks;
public void setRegistrationId(int registrationId){
    this.registrationId=registrationId;
}
public int getRegistrationId(){
    return registrationId;
}
public void setFees(double fees){
    this.fees=fees;
}
public double getFees(){
    return fees;
}
public void calculateFees(int marks){
    int discount=0;
    if(marks>=85 && marks<=100)
        discount = 12;
    else if(marks>=75 && marks<=84)
        discount = 7;
    else if(marks>=65 && marks<=74)
        discount = 0;
    else
        System.out.println("You have not passed!");
    fees = fees-(fees*(discount/100.0));
    System.out.println("The discount availed is "+discount+" % and the fees after discount is: "+fees);
}
}


另一个名为DemoReg1.java的类,它承载启动方法。

public class DemoReg1 {

  public static void main(String[] args) {
    int branchList[]={1001,1002,1003,1004,1005};
    double fees[]= {25575,15500,33750,8350,20500};
    Registration reg = new Registration();
    reg.setRegistrationId(2001);
    int branchId=1002;
    double fees1=0;
    for(int i=0;i<branchList.length;i++)
    {
        if(branchList[i]==branchId)
        {
            fees1=fees[i];
            reg.setFees(fees1);
            System.out.println("The Registration ID is:"+reg.getRegistrationId());
            System.out.println("The fees before discount is:"+reg.getFees());
            reg.calculateFees(79);
            break;
        }
       }
      }
    }


我得到的输出是:

The Registration ID is:2001
The fees before discount is:15500.0
The discount availed is 7 % and the fees after discount is: 14415.0


我想添加一个'else'条件,当提供的branchId(局部变量)为1006时,该条件打印出以下语句。

System.out.println("Invalid branch ID");


我应该在代码的哪里添加上面的语句?
谢谢!

最佳答案

如果找到分支,引入一个设置为true的布尔变量,并在循环后检查此布尔变量的值:

boolean branchFound = false;
for(int i=0;i<branchList.length;i++)
{
    if(branchList[i]==branchId)
    {
        branchFound = true;
        fees1=fees[i];
        reg.setFees(fees1);
        System.out.println("The Registration ID is:"+reg.getRegistrationId());
        System.out.println("The fees before discount is:"+reg.getFees());
        reg.calculateFees(79);
        break;
    }
   }
  }
}
if (!branchFound) {
    System.out.println("Invalid branch ID");
}


您可能应该引入一个包含branchId和相关费用的类(BranchIdAndFee),而不要使用并行数组。而且,您还应该使用Map<Integer, BranchIdAndFee>以便能够在恒定时间内从分支ID中获取信息,而不必循环。

10-05 22:51
查看更多