2009-10-28 521 views
-1

賦值函數返回值賦值函數返回值

添加一個新方法emptyMachine()到旨在模擬排空錢 機器TicketMachine類應該都在總收益的價值和重置價值總數爲零。 整個方法粘貼到下面的空白處

public int emptyMachine() 
    { 
     System.out.println("# " + total); 
     total = 0; 

    } 

我得到這個錯誤:

TicketMachine.java:44: missing return statement 
    } 
    ^
1 error 
The output should have been: 
    emptyMachine() returns correct value 
    emptyMachine() empties machine 

This is what was actually produced: 
    Exception in thread "main" java.lang.NoClassDefFoundError: TicketMachine 
+1

正如編譯器所說。你錯過了退貨聲明。你的方法必須返回一個int – jitter 2009-10-28 22:40:21

+2

只要在語句中隨意輸入語句,直到檢查器很快樂,學習如何編寫代碼是一種非常低效的方法,即使稱爲StackOverflow的Oracle爲您提供瞭解決方案。如果你想學習編程,最好建議實際嘗試理解變量,方法和返回語句的含義。 – meriton 2009-10-28 22:58:06

+0

您已將返回類型設置爲「int」,但您沒有返回值。 – Raptor 2009-10-29 06:43:09

回答

0

你的方法簽名聲明,它返回一個int,但你完全不返回任何東西。

public int emptyMachine() 
{ 
    System.out.println("# " + total); 
    total = 0; 
    return total; 
} 

我必須假定變量'total'是在方法之外定義的,因爲您不向我們顯示該代碼。

+0

public int emptyMachine() { System.out.println(「#」+ total); total = 0;總回報: ; } 你的意思是? – Tical 2009-10-28 22:46:46

+0

馬克:0出1個 評論: *測試1(0.0分,1) 編譯成功 輸出應該是: emptyMachine()返回正確的值 emptyMachine()清空機 這是實際產生的內容: #300 #0 emptyMachine()清空機器 – Tical 2009-10-28 22:49:15

+0

@Tical:我剛剛添加了一個作爲教學類型的東西,但是,是的,OP的任務是返回'total'。 – 2009-10-28 23:02:58

2

說明:「」這都應該在返回值總計將總計值重置爲零。「」

這很簡單。在這種情況下,「」和「」只能用作「以及」「。

public int emptyMachine() 
{ 
    int prevTotal = total; 
    total = 0; 
    return prevTotal; 
} 

Win \ o /!