返回类型错误?

时间:2014-11-12 03:17:51

标签: java types return

我正在为我的班级做一个Java练习并遇到错误。它说“不兼容的类型:意外的返回值”。如果有人可以检查我是否正确执行此代码,那也很好。我的指示是创建一个可变的maxValue,它将被初始化为第一个元素。然后我必须将maxValue存储的元素与列表中的另一个元素进行比较。如果数组中的元素大于存储在maxValue中的元素,则假设使用较大的元素存储/更新maxValue。

public class MyArray
  {
   public static void main(String[] args)
   {
   int[] ArrayLargestElement = {
       45, 38, 27, 
       46, 81, 72,
       56, 61, 20,
       48, 76, 91, 
       57, 35, 78
    };
   int maxValue = ArrayLargestElement[0]
   for (int i=0; i<ArrayLargestElement.length; i++) {
       if (maxValue  > ArrayLargestElement[i]) {
           maxValue = ArrayLargestElement[i];
        }
   }
   return maxValue;    
  } 
}

3 个答案:

答案 0 :(得分:0)

main()是静态无效的。它无法返回maxValue。我想你想print

// return maxValue;    
System.out.printf("maxValue = %d%n", maxValue);

但也许你试图将其提取到像

这样的方法
public static int getLargestValue(int[] arr) {
    if (arr == null) {
        return Integer.MIN_VALUE;
    }
    int max = arr[0];
    for (int i = 1; i < arr.length; i++) {
        max = Integer.max(max, arr[i]);
    }
    return max;
}

然后您可以在main()中将其称为

public static int getLargestValue(int[] arr) {
    if (arr == null) {
        return Integer.MIN_VALUE;
    }
    int max = arr[0];
    for (int i = 1; i < arr.length; i++) {
        max = Integer.max(max, arr[i]);
    }
    return max;
}

public static void main(String[] args) {
    int[] array = { 45, 38, 27, 46, 81, 72, 56, 61, 20, 48, 76, 91, 57, 35,
            78 };
    System.out.println(getLargestValue(array));
}

答案 1 :(得分:0)

您无法在void Main()函数中返回值。         写函数返回一个值。

public static int getmax(int max[])
   {
       int maxValue = max[0]
   for (int i=0; i<max.length; i++) 
    {
   if (maxValue  > max[i]) 
      {
       maxValue = max[i];
      }
    }
   return maxValue; 
  } 

main

中调用一个函数
public class MyArray
  {
   public static void main(String[] args)
    {
     int[] ArrayLargestElement = {
      45, 38, 27, 
      46, 81, 72,
      56, 61, 20,
      48, 76, 91, 
      57, 35, 78
     };
     System.out.print("Maximum value in ArrayList"+getmax(ArrayLargestElement));
  }
     /*write your function here */
}

答案 2 :(得分:0)

main()本质上是一种void方法。它并不意味着返回一个值。但是,您可以使用System.out.println向控制台显示maxValue。否则,我建议写一个实际上会为你返回最大值的方法,就像上面列出的方法之一一样。希望这有帮助!