是否有可能按照以下方式编写一些内容:
// Variables
int numMonths = 0;
int numYears = 0;
double [] interestAccurred = new double[numMonths];
double [] compoundMonthly = new double[numMonths];
// Convert years into months
numMonths = (numYears * 12) ;
例如,假设用户输入程序2年。该程序将其转换为几个月(确切地说是24个月)。然后我希望数组interestAccurred和compoundMonthly有24个位置(0 - 23)。这可能吗?感谢。
答案 0 :(得分:3)
是的,这是可能的。要获得用户的输入,您可以使用Scanner
:
Scanner sc = new Scanner(System.in);
阅读int
您可以使用nextInt()
:
int numYears = sc.nextInt();
然后进行计算,并创建/初始化数组:
int numMonths = numYears * 2;
double[] interestAccurred = new double[numMonths];
double[] compoundMonthly = new double[numMonths];
// ...
注意:您可以使用Scanner
来阅读int
,float
,double
,String
...
答案 1 :(得分:1)
是的,这是可能的。但是,你有一行
numMonths = (numYears * 12);
数组声明后。这是不正确的。它应该在之前,如下所示:
int numMonths = 0;
int numYears = 0;
numMonths = (numYears * 12);
double[] interestAccurred = new double[numMonths];
double[] compoundMonthly = new double[numMonths];
如果在数组声明之后重新分配numMonths 的值,则数组大小不会自动更改,因为基元由值传递,而不是通过引用传递。您必须将numMonths设置为所需的数组大小,然后声明数组。
此外,Java数组的大小固定。声明大小后,就无法更改。