根据变量的值确定Java中数组的大小

时间:2014-03-09 00:24:08

标签: java arrays

是否有可能按照以下方式编写一些内容:

// 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)。这可能吗?感谢。

2 个答案:

答案 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来阅读intfloatdoubleString ...

答案 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数组的大小固定。声明大小后,就无法更改。