如何从void方法打印结果

时间:2013-11-09 21:25:31

标签: java

我正在为我的编程类介绍做一个任务,这是一个冒泡排序。代码可能有缺陷,但我不是在找人来解决这个问题。我的问题是,我正在尝试打印它。我被赋予了这样的条件:该方法必须由“public static void sort(int [] array)”行的void方法定义。所以,如果我尝试导入数组,并在我的main方法中使用System.out.println(Arrays.toString(sort(array)));,它将无法工作,因为我收到编译器错误,说明void不适用。如果我试图将它放在main方法的循环中,它会告诉我存在不兼容的类型。找到的是一个void,需要的是int [],但赋值的原始条件是使用void方法。所以,说到这一点,我应该将方法从void更改为int []以进行测试,并将赋值作为void提交,或者是否有办法用void打印此代码的输出,我只是缺少它?

public static void sort(int[] array)
      { 
        int[] y = new int[array.length];
        for(int i = 0; i<=array.length-1; i++)
        {
          for(int j = i+1; i<=array.length-1; j++)
          {
            if(array[i] < array[j]){
              y[i] = array[j];
            }
            if(array[i] >= array[j]){
              y[i] = array[i]; 
          }  
        }
          for(int k = 0; k<y.length; k++){
          System.out.println(y[k]);
          }
      } 
    } //end of sort method

4 个答案:

答案 0 :(得分:2)

问题是您在sort方法中创建了一个新的本地数组,由于您的分配限制,您显然无法返回。

int[] y = new int[array.length];

您的方法无效,因为传递的数组将保持不变。您需要在适当的位置进行排序,即不创建新阵列。因此,如果您从main方法传递它,它将被排序,您可以在那里打印它。

Bubble sort应使用swap方法,因此您只需要一个临时变量。

答案 1 :(得分:1)

要打印数组,请使用您需要的main方法

//code that initializes the array or whatever
sort(myArray);
System.out.println(Arrays.toString(myArray)); //print the array modified by the previous method call

还要注意@ A4L对你本地阵列的评价。使用作为参数传递给方法的数组,不要创建新数组。

答案 2 :(得分:0)

Arrays.sort()修改您传入的数组。因此,如果您遍历array对象并在调用Arrays.sort()后打印元素,则会为您打印。

答案 3 :(得分:0)

由于您有一个void排序方法,您希望它将数组排序为副作用。也就是说,修改作为方法参数传递的int[] array引用中的值。然后你可以从main打印出来。