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

how to get the last value of the array variable in loops

这是我的代码:

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
    }
  }
}

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

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

...here last value of the array is not printed...

未打印,因为您正在这样做:

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

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

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

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

 System.out.println(a[a.length-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
        }
        <b>if(a.length > 0) {
            System.out.print(a[a.length-1]);
        }</b>
    }

}