如何仅打印数组的最后一个元素?

时间:2019-01-15 21:57:39

标签: java arrays for-loop

我正在尝试打印数组的最后一个元素。该代码可以在下面看到:

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],将仅打印数组的最后一个元素。我怀疑这与循环有关,但是我不知道为什么或如何解决它。

任何帮助或建议将不胜感激。谢谢!

4 个答案:

答案 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]的当前迭代将始终是其中实际包含值的最后一个索引,但是直到您在循环中的最后一次迭代(在此处解释您的错误)之前,最后一个索引才会真正被一个值填充。