此处不允许出现错误“void”类型

时间:2021-07-10 08:58:35

标签: java

import java.util.*;

class sorting{
static void SortArray(int[] a ,int size){
    int low =0;
    int mid =0;
    int high = size-1;
    int temp;
    
    while(a[mid]<= high){
        
        switch(a[mid]){
            
            case 0:{
                temp = a[low];
                a[low] = a[mid];
                a[mid] = temp;
                low++;
                mid++;
                break;
            }
            case 1:
                mid++;
                break;
            
            case 2:{
                temp = a[mid];
                a[mid] = a[high];
                a[high] = temp;
                high--;
                break;
            }
        }
    }
}
public static void main(String args[]){
    Scanner sc = new Scanner(System.in);
    int size = sc.nextInt();
    int[] a = new int[size];
    
    for(int i = 0; i< size; i++){
        a[i] = sc.nextInt();
    }
    System.out.println(SortArray(a,size));
}
}

请检查输出。 OUTPUT IS HERE

为什么我会收到这里不允许的“void”类型错误?我想我已经正确地编写了这段代码,对吗?这段代码有什么问题吗?请帮我理解这个错误。

2 个答案:

答案 0 :(得分:0)

您的 SortArray 的返回值是无效的。这意味着它不返回任何值。

你试图将它发送到另一个等待输入的函数:

System.out.println(SortArray(a,size));

答案 1 :(得分:0)

static void SortArray(int[] a ,int size)

  1. 代替 void ,使用 int[]
    static int[] SortArray(int[] a ,int size)

 case 2:{....
                }
            }
        }
        return a;
    }

然后在您的方法中添加 return a;,如上所示
这将解决此处不允许使用 void 类型

  • 在方法中使用 void 意味着您不会从中返回任何内容 方法。
  • 在您的方法中添加 int[] static int[] SortArray(int[] a ,int size) 后,您告诉编译器在对数组进行排序后,你会返回数组。