此问题已在此处找到答案:
是什么导致“此处不允许使用“void”类型”错误(6个答案)
4小时前关门了。
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));
}
}
请检查输出。输出在这里
为什么这里不允许出现此错误“void”类型?我想我写的代码是正确的,对吗?这个代码有什么问题吗?请帮我理解这个错误。
2条答案
按热度按时间m2xkgtsf1#
静态空排序(int[]a,int size)
使用int[]代替void
静态int[]sortarray(int[]a,int size)
然后添加返回a;在您的方法中,如上所示
这将解决此处不允许的无效类型
在方法中使用void意味着您不会从该方法返回任何内容。
在方法中添加int[]static int[]sortarray(int[]a,int size)后,您告诉编译器在对数组进行排序后,u将返回数组。
yr9zkbsy2#
你的
SortArray
的返回值为空。这意味着它不返回任何值。您试图将其发送到另一个等待输入的函数:
System.out.println(SortArray(a,size));