【发布时间】:2016-07-23 07:11:10
【问题描述】:
我在下面的代码中不断收到一个错误,告诉我该类型必须是一个数组,但它在打印语句中为“total[agentnumber]”返回一个双精度值。任何人都可以解释这一点以及在这种情况下我如何解决它?
我的目标:编写代码,输入周期数、利率和代理数量(其中每个代理分配的委托人等于其代理编号,即代理 1 收到 100,代理 2 收到 200,等等)并打印每个代理的余额。我想循环执行此操作,而不是使用复利公式,因为我正在尝试学习如何使用 Java。
其他问题:这个设置有点疯狂,因为我不知道如何返回 for 循环的结果。假设我有兴趣最终为每个代理打印相当于 agent[agentnumber].money 的内容,我应该在哪里放置“return”以及应该返回什么。
public class Person{
public double money; // initialize
Person(double cash){
money = cash;
}
}
public class Bank {
public static double bank(double rate, double periods, int agents){
Person[] agent = new Person[agents];
double total;
for( int agentnumber = 0; agentnumber < agents; agentnumber++) {
agent[agentnumber] = new Person((agentnumber+1)*100); // assign starting incomes and instantiate players
for(int months = 0; months < periods; months++){
agent[agentnumber].money = agent[agentnumber].money*(1.0 + rate);
total = agent[agentnumber].money;
System.out.println("The total balance of player " + agentnumber + " is " + total[agentnumber]);
}
}
}
public static void main(String[] args) {
bank(0.05,120,3);
}
}
【问题讨论】:
-
询问错误时,请发布完整且准确的错误消息。
-
看看你是如何使用
total的。查看错误消息指示的代码行,看看一切是否有意义。更仔细地查看错误消息。 -
我不认为这会因为多种原因编译。
-
total 是一个双精度数(即一个十进制数)。 total[agentnumber] 应该是什么意思?