基本阵列疑惑

1 java arrays

public class Quicks
{
    public static void main(String args[])
    {   int temp;
        int[] list={5,1,7,6,4,0,8,9};
        int i;
        for(i=0;i<=6;i++)
        {
            if(list[i]>list[i+1]);
            {   
                temp=list[i+1];
                list[i+1]=list[i];
                list[i]=temp;

            }

        }
        for(i=0;i<=6;i++)
        {
            System.out.println(list[i]);
        }

        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出1 7 6 4 0 8 9

我的第一个怀疑是5

为什么7和6没有被交换

Sho*_*tch 5

你的第一个问题.

你的循环:

for(i=0;i<=6;i++)
{
     System.out.println(list[i]);
}
Run Code Online (Sandbox Code Playgroud)

将会:

for(i=0;i<=7;i++)
{
    System.out.println(list[i]);
}
Run Code Online (Sandbox Code Playgroud)

因为你的数组的大小是8而没有7,而且6-0 + 1 = 7,所以你不打印最后一个元素.

如果你对代码进行分析,你会认为循环将数组的第一个元素移动到最后一个位置.如果要对数组进行排序,则不是代码.

  • 此外,if后面有一个分号(list [i]> list [i + 1]); 不应该在那里 (4认同)