黑马程序员技术交流社区

标题: 请大侠帮我看看这个程序为什么不报错,但是没有数据显示 [打印本页]

作者: 傲鸽    时间: 2013-6-16 21:05
标题: 请大侠帮我看看这个程序为什么不报错,但是没有数据显示
本帖最后由 傲鸽 于 2013-6-22 23:11 编辑

class Demo
{
        public static void main(String[] args)
        {
                int[] arr1={2,5,8,1,4,3};
                System.out.println(print(arr1));
                bubbleSort(arr1);
                System.out.println(print(arr1));
               
        }

        public static void bubbleSort(int[] arr){
                for (int i=0;i<arr.length-1 ; i++){
                        for (int j=0;j<arr.length-1-i ;j++ ){
                                if(arr[j]>arr[j+1]){
                                        int temp=arr[j];
                                        arr[j]=arr[j+1];
                                        arr[j+1]=temp;
                                }
                        }
                }
        }

        public static String print(int[] arr){
               
                String str="[";
                int x=0;
                while (x!=arr.length-1){
                        str=str+arr[x]+",";
                }
                str=str+arr[x]+"]";        
               
                return str;
        }
        
}

作者: 左耳的鱼    时间: 2013-6-16 21:06
while循环应该加个计数器x++,要不成为死循环了。。。
作者: 左耳的鱼    时间: 2013-6-16 21:07
class Demo
{
        public static void main(String[] args)
        {
                int[] arr1={2,5,8,1,4,3};
                System.out.println(print(arr1));
                bubbleSort(arr1);
                System.out.println(print(arr1));
               
        }

        public static void bubbleSort(int[] arr){
                for (int i=0;i<arr.length-1 ; i++){
                        for (int j=0;j<arr.length-1-i ;j++ ){
                                if(arr[j]>arr[j+1]){
                                        int temp=arr[j];
                                        arr[j]=arr[j+1];
                                        arr[j+1]=temp;
                                }
                        }
                }
        }

        public static String print(int[] arr){
               
                String str="[";
                int x=0;
                while (x!=arr.length-1){
                        str=str+arr[x]+",";
                        x++;
                }
                str=str+arr[x]+"]";        
               
                return str;
        }
        
}

作者: 。子伤。    时间: 2013-6-16 21:38
  1. package text_2013_6_16;

  2. public class Demo2 {
  3.         public static void main(String[] args) {
  4.                 int[] arr1 = { 2, 5, 8, 1, 4, 3 };
  5.                 // System.out.println(print(arr1));
  6.                 // bubbleSort(arr1);
  7.                 // System.out.println(print(arr1));
  8.                 System.out.println("遍历前的数组!");
  9.                 print(arr1);
  10.                 bubbleSort(arr1);
  11.                 System.out.println();
  12.                 System.out.println("遍历后的数组!");
  13.                 print(arr1);

  14.         }

  15.         public static int[] bubbleSort(int[] arr) { // 这里 返回值是空,能打印???
  16.                 for (int i = 0; i < arr.length - 1; i++) {
  17.                         for (int j = 0; j < arr.length - 1 - i; j++) {
  18.                                 if (arr[j] > arr[j + 1]) {
  19.                                         int temp = arr[j];
  20.                                         arr[j] = arr[j + 1];
  21.                                         arr[j + 1] = temp;
  22.                                 }
  23.                         }
  24.                 }
  25.                 return (arr);
  26.         }

  27.         /*
  28.          * public static String print(int[] arr) {//这里我也没看懂你想要什么。估计是想遍历一下数组。
  29.          *
  30.          * String str = "["; int x = 0; while (x != arr.length - 1) { str = str +
  31.          * arr[x] + ","; } str = str + arr[x] + "]";
  32.          *
  33.          * return str; }
  34.          */
  35.         public static void print(int[] arr) {
  36.                 for (int i = 0; i < arr.length; i++) {
  37.                         System.out.print(arr[i] + " ");
  38.                 }
  39.         }

  40. }
复制代码

作者: 。子伤。    时间: 2013-6-16 21:40
写函数的时候,你要明确函数的返回值和参数列表。这是函数的核心。假如改的不是和你想的一样,那就在描述得详细一些!!
作者: 鑫森淼焱垚    时间: 2013-6-16 22:08
同学你好,请看看注释:
        public static String print(int[] arr){
                 
                String str="[";
                 int x=0;
                 while (x!=arr.length-1){
                         str=str+arr[x]+",";
                         x++;//同学,你忘记在while循环里面加x++;从而造成条件永远为true,while是一个死循环
                 }                        //运行一下,看看可以吗,希望能够帮上你!
                 str=str+arr[x]+"]";        
                 
                return str;
         }
         
}
作者: 傲鸽    时间: 2013-6-18 09:27
谢谢大家,我懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2