这是我的代码:
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
}
}
}
这是我程序的一部分,这里不打印数组的最后一个值?!
你能帮助我任何人如何获得数组的最后一个值吗?
答案 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]);
}
}
}