2014-12-18 56 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

請填寫您的代碼。在return語句之後的 – 2014-12-18 22:36:23

+3

語句永遠不會被執行。你的IDE會提醒你。我們不是在這裏調試你的代碼。 – 2014-12-18 22:37:33

+2

此外,發佈您收到的錯誤可能會有幫助,因此可以向您解釋這些錯誤。 – Brian 2014-12-18 22:47:06

回答

0

幾個問題:

  1. 你不能聲明的方法中的一個方法。您的SN方法必須在main方法之外聲明。

  2. SN方法中的參數y必須有一個類型。根據使用情況,它可能應該是int,所以方法簽名應該看起來像SN(int y)

  3. 儘管方法參數被稱爲y,您似乎在任何地方都使用x。您應該在SN方法中將x更改爲y,因爲這是傳遞給方法的數據的標籤。

  4. 正如其他人所指出的那樣,語句return線都可達,馬特Coubrough說,你的IDE很可能是警告你這一點。把它放在之前return一行。

0

嗯,這裏有一個問題是,你有一個無法言。永遠不會到達您的System.out.println("THE SUM IS...")

+0

import java.util.Scanner; 公共類天然{ 公共靜態INT主要(字符串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:」+ N); } – beginner 2014-12-18 22:39:59

+0

那麼解決方案是什麼? – beginner 2014-12-18 22:42:47

+1

在return語句之前移動println調用? – zmbq 2014-12-18 22:43:56