2014-12-18 2 views
-7

Java에서 함수를 사용하는 데 의문점이 있습니다. 재귀 함수를 사용하여 자연수의 합계에 대한 코드를 작성했지만 얻은 오류를 이해하지 못합니다. 나는 초보자이긴하지만 바보 같은 질문 인 것을 알고 있으며 간단한 설명이 필요하다.Java 프로그래밍의 함수 사용

여기 코드

import java.util.Scanner; 

public class natural { 

public static int main(String args[]){ 


     int a, s = 0,y; 
     Scanner in = new Scanner(System.in); 
     System.out.print("Enter the number:"); 
     int x = in.nextInt(); 
     public static int SN(y) 
     { 
      if(x==1) 
      { 
       return 1; 
      } 
      else{ 
       int N = SN(x-1) + x; 
       return N; 
       System.out.println("THE SUM IS :"+x); 
      } 
     } 
+0

코드를 작성하십시오. 반환 문 다음에 –

+3

문이 실행되지 않습니다. IDE가 이에 대해 경고합니다. 우리는 당신의 코드를 디버깅하지 않습니다. –

+2

또한 오류를 게시하여 설명 될 수 있도록 게시하는 것이 도움이됩니다. – Brian

답변

0

몇 가지 문제 : 당신은 방법에서 방법을 선언 할 수 없습니다

  1. . SN 메서드는 main 메서드 외부에서 선언해야합니다.

  2. 귀하의 SN 방법의 매개 변수 y에는 유형이 있어야합니다. 사용법에 따라 아마 int으로되어 있으므로 메서드 서명은 SN(int y)과 같아야합니다.

  3. y이라는 메서드 매개 변수에도 불구하고 모든 곳에서 x을 사용하는 것으로 보입니다. SN 메서드에서 xy으로 변경해야합니다. 이는 메서드에 전달되는 데이터의 레이블이므로 변경해야합니다. 다른 사람들이 지적했듯이

  4. 는 문 return 라인을 연결할 수 있으며, 매트 Coubrough 말했듯이, 당신의 IDE 가능성이에 대해 경고한다. 앞에 입력하고 return 행을 입력하십시오.

0

자에게있다, 여기에서 문제는 당신이 연결할 수없는 문을 가지고있다. System.out.println("THE SUM IS...")에 도달하지 못했습니다.

+0

가져 오기 java.util.Scanner; Public 클래스 천연 { 공용 static INT 메인 (문자열 인수 []) { INT의 A, S = 0, Y; 스캐너 in = 새 스캐너 (System.in); System.out.print ("번호 입력 :"); int x = in.nextInt(); public static int SN (y) { if (x == 1) { return 1; } else { int N = SN (x-1) + x; return N; } System.out.println ("THE SUM IS :"+ N); } – beginner

+0

그래서 해결책은 무엇입니까 ??? – beginner

+1

return 문 앞에 println 호출을 이동 하시겠습니까? – zmbq