2014-11-12 3 views
0

클래스에 대한 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;  
    } 
} 
+4

'public static void main()'은 반환 값을 가지고 있지 않습니다! – DnR

+0

왜 main()에서 값을 반환하겠습니까? – gprathour

답변

0

main()은 정적 공백입니다. maxValue을 반환 할 수 없습니다. 나는 당신이 print에 그것을 원한다고 생각한다.

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

하지만 아마 당신은 그럼 당신은 당신이 void 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)); 
} 
0

처럼 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 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 */ 
} 
+0

'main()'을 의미합니까? 케이스 문제. –

0

메인 (의 함수) 특성, 보이드 법에 의한 것이다. 그것은 가치를 반환하기위한 것이 아닙니다. 그러나 System.out.println을 사용하여 maxValue를 콘솔에 표시 할 수 있습니다. 그렇지 않으면 위에 나열된 메서드 중 하나와 같이 실제로 최대 값을 반환하는 메서드를 작성하는 것이 좋습니다. 희망이 도움이!