此处不允许获取错误“void”类型

dauxcl2d  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(280)

此问题已在此处找到答案

是什么导致“此处不允许使用“void”类型”错误(6个答案)
4小时前关门了。

  1. import java.util.*;
  2. class sorting{
  3. static void SortArray(int[] a ,int size){
  4. int low =0;
  5. int mid =0;
  6. int high = size-1;
  7. int temp;
  8. while(a[mid]<= high){
  9. switch(a[mid]){
  10. case 0:{
  11. temp = a[low];
  12. a[low] = a[mid];
  13. a[mid] = temp;
  14. low++;
  15. mid++;
  16. break;
  17. }
  18. case 1:
  19. mid++;
  20. break;
  21. case 2:{
  22. temp = a[mid];
  23. a[mid] = a[high];
  24. a[high] = temp;
  25. high--;
  26. break;
  27. }
  28. }
  29. }
  30. }
  31. public static void main(String args[]){
  32. Scanner sc = new Scanner(System.in);
  33. int size = sc.nextInt();
  34. int[] a = new int[size];
  35. for(int i = 0; i< size; i++){
  36. a[i] = sc.nextInt();
  37. }
  38. System.out.println(SortArray(a,size));
  39. }
  40. }

请检查输出。输出在这里
为什么这里不允许出现此错误“void”类型?我想我写的代码是正确的,对吗?这个代码有什么问题吗?请帮我理解这个错误。

m2xkgtsf

m2xkgtsf1#

静态空排序(int[]a,int size)
使用int[]代替void
静态int[]sortarray(int[]a,int size)

  1. case 2:{....
  2. }
  3. }
  4. }
  5. return a;
  6. }

然后添加返回a;在您的方法中,如上所示
这将解决此处不允许的无效类型
在方法中使用void意味着您不会从该方法返回任何内容。
在方法中添加int[]static int[]sortarray(int[]a,int size)后,您告诉编译器在对数组进行排序后,u将返回数组。

yr9zkbsy

yr9zkbsy2#

你的 SortArray 的返回值为空。这意味着它不返回任何值。
您试图将其发送到另一个等待输入的函数: System.out.println(SortArray(a,size));

相关问题