java - Java 中的数组编程

标签 java

这是存储为 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");

我应该在代码的什么位置添加上面的语句? 谢谢!

最佳答案

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

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");
}

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

关于java - Java 中的数组编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497594/

相关文章:

java - 实体无法保存外键实体

java - 我怎样才能得到java中的日期的月份日以在甘特图中使用

java - 用真实设备连接xampp localhost数据库

java - Solr 。更新文档多值字段(无重复值),无需已提交

java - 矩阵的元素是内存地址而不是元素的值

java - 如果java中的线程正在运行并且我不拥有任何对它的线程引用,线程是否会被垃圾收集

java - 最简单的设置和忘记分布式数据库来存储简单的 JSON 类结构?

java - 安卓 : how to create a Object using Reflection and pass constructor parameter?

Java - Android - NoClassDefFoundError - Logcat 中的 "Could not find class"错误

java - 删除 ArrayList 中的连续重复项 [Java]