如何在循环中获取数组变量的最后一个值

时间:2017-04-03 09:27:24

标签: java arrays loops swap

这是我的代码:

class test {
  public static void main(String args[]) { 
    int a[]={5,8,9,7,3};
    int j;

    for(j=0;j<a.length-1;j++)
    {
        if(a[j]>a[j+1])
        {
            int temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
        System.out.print(a[j]+"   "); // last value of array a[4] is not printed
    }
  }
}

这是我程序的一部分,这里不打印数组的最后一个值?!

你能帮助我任何人如何获得数组的最后一个值吗?

3 个答案:

答案 0 :(得分:2)

  

...此处不打印数组的最后一个值...

由于您这样做,因此不会打印

for(j=0;j<a.length-1;j++)

只打印最后一个元素就足够了:

System.out.println(a[a.length - 1]);

答案 1 :(得分:1)

简单:在循环之后添加另一个打印语句;像:

 System.out.println(a[a.length-1]);

例如。

例如,

。关键是你的循环是(正确地跳过最后一个索引)。所以一个合理的解决方案是在你的循环之后做最后一个印刷语句;如你所知,你想打印它。

答案 2 :(得分:1)

未打印原因是因为for循环的范围从0(含)到a.lenth-1(不包括)。因此,对于最后一个元素,循环

但是,您不能简单地将绑定值设置得更高,因为交换将崩溃(生成越界异常)。

您可以通过简单地在循环后打印最后一个元素来解决问题:

class test
{

    public static void main(String args[])
    { 
        int a[]={5,8,9,7,3};
        int j;

        for(j=0;j<a.length-1;j++)
        {
            if(a[j]>a[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
            System.out.print(a[j]+"   "); // last value of array a[4] is not printed
        }
        if(a.length > 0) {
            System.out.print(a[a.length-1]);
        }
    }

}