2013-03-23 63 views
1

我試圖接受用戶輸入,然後將該輸入傳遞給另一個類以執行一系列檢查。在這種情況下,要將答案與用戶可以鍵入的選項列表進行比較,並且如果他們鍵入選項,則會執行操作。我從一個菜單選項開始,但我在控制檯中鍵入'menu',沒有任何反應......程序只是終止而沒有錯誤。從用戶輸入獲取答案並傳遞給另一個類

在調試中,在'return'處「菜單」的值存儲在變量「答案」中。之後的很下一步我得到「主題[主](暫停)」,並表示該堆棧跟蹤信息:

Thread.exit()行:不可用[局部變量不可用]

如何我能從main()中得到在Exec類中被識別的答案嗎?

這裏是我的main()

package program2; 
public class Calculator { 
    public static String answer; 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter the word menu: "); 
     String answer = sc.nextLine(); 
     return; 
    } 
} 

這裏是我的Exec的課堂,我想執行操作:

package program2; 

public class Exec { 
    String newAnswer = Calculator.answer; 

    public Exec (String answer){   
     if (newAnswer.equals("menu")){ 
      menu(); 
     } 
    } 
    public static void menu(){ 
     System.out.printf("%-30s %-30s %-30s%n", "Enter value: enter", "Duplicate: dup" "Exp:exp");   
    } 
} 

我也嘗試簡單的東西像這樣(收到了同樣的響應):

package program2; 
public class Calculator { 
    public static String answer; 

    public static void main(String[] args) { 
     answer = "menu"; 
     return; 
    } 
} 
+0

你沒有在任何地方使用'Exec'。你期望發生什麼? – DaoWen 2013-03-23 00:34:33

+0

我正在將Calculator.answer分配給newAnswer;我期望newAnswer能夠使用Calculator.answer的值... – Chris 2013-03-23 00:37:10

回答

2

對於初學者,您需要實例化一個Exec實例fr OM爲主,並把它傳遞到Exec的... 即:

String answer = sc.nextLine(); 
Exec ex = new Exec(answer); 
return; 

從那裏,它應該工作。它說,沒有更多的變量可用,因爲你的程序結束於返回語句...

但是你的Exec類也有問題.... newAnswer沒有被分配,你正在測試它是否相等......你會得到另一個錯誤......

編輯:

UGG ..它甚至比這更糟......不重新聲明的答案,使用this.answer ...你宣佈一個新的局部變量。

+1

謝謝。我知道這對你和其他人來說是基本的,但我仍然在努力學習。你的時間和幫助非常感謝:) – Chris 2013-03-23 00:47:46

+0

不是問題克里斯,每個人都在那裏,我在這個網站上,因爲它幫助我通過幫助別人學習:)不要擔心提問......我的「烏格... 「是因爲我一直在編輯,發現更多的錯誤大聲笑,如果我一次都看到他們,這將是很好的嘿嘿。 – Ryan 2013-03-23 00:49:56

相關問題