A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 skyfly 于 2014-6-7 14:00 编辑

代码如下:   排序是没有错的,全排好了,但是很奇怪地最后一个数没有显示出来,为何呢。
public class demo0 {

        public static void main(String[] args) {
        int arr[]={1,8,3,4,9,10,11,4};
        
         selectSort(arr);
        

        }
   
        public static void selectSort(int arr[]){
               
                for(int x=0;x<arr.length;x++)
                {
                        for(int y=x+1;y<arr.length;y++)
                                if(arr[x]>arr[y])
                                {
                                        int temp=arr[x];
                                        arr[x]=arr[y];
                                        arr[y]=temp;
                                       
                                       
                                }
                        
                        System.out.print(arr[x]+",");
                }
               
               
        }
}
执行后结果是:1,3,4,4,8,9,10,  
然后如何 用迭代器把数组中的数读出来  ?

3 个回复

正序浏览

有点没有搞懂你的意思。运行结果没有错啊。

这个里面x<arr.length-1,是x运行到倒数第二位时,这是最后一位可以不变。
而你这里写x<arr.length是因为要将所有数组打印出来。
而x<arr.length之所以能够继续判定是因为这个时候y已经等于arr.length所以不比较直接打印。
回复 使用道具 举报
没有啊,运行结果本来就是1,3,4,4,8,9,10,11
回复 使用道具 举报
x<arr.length-1 猜对  我发现排序十分重要
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马