我有这个代码,你会搜索病人id,当找到一个子菜单将显示,然后会提示用户选择。如果用户选择了账单,那么将要求该账单输入一个事务,并且该账单将与所搜索的id在同一对象中的余额相加。然而,当用户输入一个值时,它总是将该值和对象中的余额(450)相加。
我怎样才能解决这个问题?
注意:它在一个阵列中
输出:仅将输入添加到第一个对象。
patient pAccount[] = new patient [10];
patient p1 = new patient("Jabari","luck",d1 ,"234-4343", "p01" ,450);
patient p2 = new patient("Lisa", "nun", d2,"311-5634" , "p02",300);
patient p3 = new patient("Kyle", "Hep",d3 ,"555-5555" , "p03",2000 );
//search array for patient ID
public static void ID(person [] pAccount) {
Scanner scan= new Scanner(System.in);
String num = scan.next();
for(int i=0; i< pAccount.length; i++) {
if (pAccount[i].getpatID().equals(num)) {
System.out.println("found");
break;
}
}
}
//sum user input to balance
public static void bill(person[] pAccount) {
Scanner in = new Scanner (System.in);
double sum;
double num= in.nextDouble();
for(int i=0; i <= pAccount.length; i++) {
person ad= pAccount[i];
sum = ((patient) ad).getbalance()+ num;
System.out.println("Balance: " +sum);
break;
}
}```
1条答案
按热度按时间eoxn13cs1#
我从您的问题中了解到的是,您需要将sum添加到patient object数组中特定对象的余额中。下面是方法,
(我排除了几个成员变量,这些变量不是通过查看您问题中的对象创建得到的,并且在patient类中只保留了name、patid和balance。我还假设您已经使用了所有字段的构造函数)
我把你的代码,并修改了你的要求一点。您可以参考我在代码段中添加的注解。
patientmainclass.class.类
病人类别
我想,您现在可以通过这些代码片段来解决您的问题。希望对你有帮助。