JAVA数组游标的奇怪问题?

来源:百度知道 编辑:UC知道 时间:2024/07/01 02:48:37
public class Ex220
{
public static void main()
{
int arr_Num[]={7,4,8,9,1,5};
int int_Count=0;
for(int i=0;i<arr_Num.length;i++)//外循环负责控制行输出的转换
{
int_Count=0;//统计已输出数组元素的个数
for(int j=i;j<arr_Num.length;j++)//内循环负责输出一行元素
{
System.out.print(arr_Num[j]+"\t");
if(j==arr_Num.length-1)//当数组游标到达数组最后一个元素,则将游标重置为数组的第一个位置
{
j=-1;//这个不知道为什么一定要-1,换成0却出现意料之外的结果
}
int_Count++;
if(int_Count==arr_Num.length)//当输出个数达到数组的长度,退出当前循环
{
break;
}
}
System.out.println();
}

}
}

主要问题是在这一句,
if(j==arr_Num.length-1)
{
j=-1;

java中for的逻辑跟C++的for是一样的。

问题出在当赋值j=-1;之后,这个循环还在继续。当循环结束的时候,还要执行j++命令。所以下一个循环开始后输出的是arr_NUM[0]。

当j=0时,j++命令执行,下一个循环开始输出的是arr_NUM[1]。所以第一行之后就看不见arr_NUM[0]这个元素了。
------------------------------------
"回到了改行输出的第一个数的位置"是什么意思??

你看是不是这个样子:

if(j==arr_Num.length-1)

如果j=0, 则arr_Num.length=1,那么在数组中就是第2个位置~·

如果j=-1, 则arr_Num.length=0,那么在数组中就是第一个位置。

不是数组游标移动不正常。。。。