2013-08-27 73 views
1
public static void main(String[] args) { 
    //call for input 
    System.out.println("Please Enter a 3-digit number.."); 
    Scanner in = new Scanner(System.in); 
    int[] num = new int[3]; 
    for (int i = 0; i < num.length; i++) { 
     int val = in.nextInt(); 
     num[i] = val; 
    } 

    System.out.println("The Sum of the numbers is " + sumNums); 
    System.out.println("The Reverse of the numbers is " + reverseNums); 

} 

public int sumNums(int x) { 
    return num[0] + num[1] + num[2]; 
} 

public in reverse(int x) { 
    return num[2] + num[1] + num[0]; 
} 

我想創建一個方法來添加一個分解數字,例如,如果我輸入123,它會導致1 + 2 + 3 = 6,但我不斷收到「找不到標誌」。也是我分手輸入效率最高的方式嗎?用Java處理輸入

+0

您需要了解變量和參數如何工作。 – SLaks

回答

0

您的實施有幾個問題。

在你println,你是不是做一個方法調用

System.out.println("The Sum of the numbers is " + sumNums); 
System.out.println("The Reverse of the numbers is " + reverseNums); 

應該

System.out.println("The Sum of the numbers is " + sumNums(0)); 
System.out.println("The Reverse of the numbers is " + reverseNums(0)); 

而且,當前的sumNumsreverseNums方法不使用參數傳入,他們卻大概會被刪除...

+0

無法從靜態內容中引用非靜態方法是進行更改後得到的錯誤? –

+0

這是因爲'sumNums'和'reverseNums'不是靜態方法。解決這個問題的最簡單方法是將方法定義爲'public static int' –

0

()在函數調用結束時在jav中是不可選的a,所以在您的println s中,您需要說sumNums()而不是sumNums。 (有沒有int x的一點,我認爲你將其刪除。

還有其他的問題..如in應該int,而逸岸大概應該是String,如果你想扭轉數..現在所有你正在做的是加入他們。你可能想通過num作爲參數傳遞給其他的功能,或使其成爲類成員..

0
  1. 您的最後一個方法的返回類型有一個錯字。
  2. 你需要從主方法中定義數組num(作爲一個字段),或者其他方法不知道這個變量(Meth ods:OMG,什麼是數字?)
  3. 調用方法是這樣的:methodName(params ...)
  4. 我不認爲你需要在這些方法中使用par「x」。
  5. 我建議你嘗試更好的代碼風格
0

我不會擔心效率,如果我是你。目前,您的程序沒有將任何輸入到需要它的方法中。這裏

兩兩件事:

  • 你的方法不是static,所以你不能沒有你的類的實例調用它們的main()內(我們稱之爲TestClass暫時)。

  • 您不會將從用戶獲得的任何信息傳遞給您的方法。這就是你遇到「無法找到符號」的原因 - num在這些方法的範圍內沒有定義。

要至少解決後一個問題,你應該改變你的方法簽名接受一個int數組,而不是單個int:

public int sumNums(int[] num) { 
    return num[0] + num[1] + num[2]; 
} 

public int reverse(int[] num) { 
    return num[2] + num[1] + num[0]; 
} 

我不希望這些結果儘管兩種方法有所不同,但因爲加法是可交換的。

實例化對象,並調用方法,我將作爲練習留給讀者。

+0

反向方法即時嘗試顛倒輸入的順序。輸入= 123輸出= 321 –