我正在尝试打印数组的最后一个元素。该代码可以在下面看到:
double [] results = new double[21];
double t = 9600;
for(int y = 0; y < 21; y++) {
results[y] = t;
t *= 1.04;
System.out.println(results[results.length - 1]);
}
但是,当我尝试运行此命令时,会得到以下结果:
0.0 (printed 20 times in a row)
...
21034.782173120842
我不知道为什么打印出20个零,然后输出我想要的答案(21034.78)
。我认为通过执行results[results.length - 1]
,将仅打印数组的最后一个元素。我怀疑这与循环有关,但是我不知道为什么或如何解决它。
任何帮助或建议将不胜感激。谢谢!
答案 0 :(得分:2)
您需要将System.out.println
放在for循环之外,否则您将始终打印0.0,因为尚未填充数组的最后一个索引。
double [] results = new double[21];
double t = 9600;
for(int y = 0; y < 21; y++) {
results[y] = t;
t *= 1.04;
}
System.out.println(results[results.length - 1]);
输出:21034.782173120842
答案 1 :(得分:0)
您需要将打印语句移到循环之外。
double [] results = new double[21]; double t = 9600;
for(int y = 0; y < 21; y++) {
results[y] = t;
t *= 1.04;
}
System.out.println(results[results.length - 1]);
答案 2 :(得分:0)
将您的System.out.println退出循环。
for(int y = 0; y < 21; y++) {
** YOUR LOGIC **
}
System.out.println(results[results.length - 1]);
答案 3 :(得分:0)
您需要进行一些改动。这是您可以做的一件事:
double [] results = new double[21];
double t = 9600;
for(int y = 0; y < results.length; y++) {
results[y] = t;
t *= 1.04;
System.out.println(results[y]);
}
您可以在循环中每次打印当前索引[y]。否则,您将始终打印尚未填充的索引21,并将重复打印0,直到填充完毕。循环[y]的当前迭代将始终是其中实际包含值的最后一个索引,但是直到您在循环中的最后一次迭代(在此处解释您的错误)之前,最后一个索引才会真正被一个值填充。