2013-10-30 70 views
-1

我在這裏獲取了我的public String makeChange(int amount) {方法上的表達式的非法開始。 我正在做一個改變點膠程序,並且有點卡在這裏,我想我正在做的是正確的,但我得到這個錯誤。爲什麼我在這裏得到非法表達的開始?

package changedispenser; 

public class ChangeDispenser { 


private static int quarters, dimes, nickels, pennies; 
private static int penniesLeft, nickelsLeft, dimesLeft, quartersLeft; 
private static int pennyRollsAdded = 1; 
private static int nickelRollsAdded = 1; 
private static int dimeRollsAdded = 1; 
private static int quarterRollsAdded = 1; 
public static final int PENNIES_PER_ROLL = 50; 
public static final int NICKELS_PER_ROLL = 40; 
public static final int DIMES_PER_ROLL = 50; 
public static final int QUARTERS_PER_ROLL = 40; 

public static void main(String[] args) { 



public String makeChange(int amount) { 


    if (amount > 99 || amount < 0) { 
     System.out.println(""); 
    } 

    quarters = amount/25; 

    amount = amount % 25; 

    dimes = amount/10; 

    amount = amount % 10; 

    nickels = amount/5; 

    amount = amount % 5; 

    pennies = amount; 




    do { 

     if (quarters != 0) { 
      System.out.print(" Quarters: " + quarters); 
     } 
     if (dimes != 0) { 
      System.out.print(" Dimes: " + dimes); 
     } 
     if (nickels != 0) { 
      System.out.print(" Nickels: " + nickels); 
     } 
     if (pennies != 0) { 
      System.out.println(" Pennies: " + pennies); 
     } 





     //Fix this so that it outputs the appropriate change IE: 23 cents is 2 dimes 3 pennies 


     System.out.println("Coins Left:"); 
     System.out.println("Quarters: " + quartersLeft); 
     System.out.println("Dimes: " + dimesLeft); 
     System.out.println("Nickels: " + nickelsLeft); 
     System.out.println("Pennies: " + penniesLeft); 
     System.out.println("Rolls Added: "); 
     System.out.println("Quarters: " + quarterRollsAdded); 
     System.out.println("Dimes: " + dimeRollsAdded); 
     System.out.println("Nickels: " + nickelRollsAdded); 
     System.out.println("Pennies: " + pennyRollsAdded); 
    } while (amount > 0 && amount <= 99); 


    return "Quarters: " + quarters + " Dime: " + dimes + " Nickels: " + nickels + " Pennies: " + pennies; 

} 

public int getPenniesLeft() { 
    return penniesLeft; 
} 

public void setPenniesLeft(int penniesLeft) { 
    this.penniesLeft = penniesLeft; 

    if (penniesLeft <= 0) { 
     pennyRollsAdded = pennyRollsAdded++; 
    } 
} 

public int getNickelsLeft() { 
    return nickelsLeft; 
} 

public void setNickelsLeft(int nickelsLeft) { 
    this.nickelsLeft = nickelsLeft; 

    if (nickelsLeft <= 0) { 
     nickelRollsAdded = nickelRollsAdded++; 
    } 
} 

public int getDimesLeft() { 
    return dimesLeft; 
} 

public void setDimesLeft(int dimesLeft) { 
    this.dimesLeft = dimesLeft; 

    if (dimesLeft <= 0) { 
     dimeRollsAdded = dimeRollsAdded++; 
    } 
} 

public int getQuartersLeft() { 
    return quartersLeft; 
} 

public void setQuartersLeft(int quartersLeft) { 
    this.quartersLeft = quartersLeft; 

    if (quartersLeft <= 0) { 
     quarterRollsAdded = quarterRollsAdded++; 
    } 
} 

public int getPennyRollsAdded() { 
    return pennyRollsAdded; 
} 

public void setPennyRollsAdded(int pennyRollsAdded) { 
    this.pennyRollsAdded = pennyRollsAdded; 
} 

public int getNickelRollsAdded() { 
    return nickelRollsAdded; 
} 

public void setNickelRollsAdded(int nickelRollsAdded) { 
    this.nickelRollsAdded = nickelRollsAdded; 
} 

public int getDimeRollsAdded() { 
    return dimeRollsAdded; 
} 

public void setDimeRollsAdded(int dimeRollsAdded) { 
    this.dimeRollsAdded = dimeRollsAdded; 
} 

public int getQuarterRollsAdded() { 
    return quarterRollsAdded; 
} 

public void setQuarterRollsAdded(int quarterRollsAdded) { 
    this.quarterRollsAdded = quarterRollsAdded; 
} 
} 

新的代碼,這是 包changedispenser;

public class ChangeDispenser { 

private static int quarters, dimes, nickels, pennies; 
private static int penniesLeft, nickelsLeft, dimesLeft, quartersLeft; 
private static int pennyRollsAdded = 1; 
private static int nickelRollsAdded = 1; 
private static int dimeRollsAdded = 1; 
private static int quarterRollsAdded = 1; 
public static final int PENNIES_PER_ROLL = 50; 
public static final int NICKELS_PER_ROLL = 40; 
public static final int DIMES_PER_ROLL = 50; 
public static final int QUARTERS_PER_ROLL = 40; 

public static void main(String[] args) { 
     if (quarters != 0) { 
    System.out.print(" Quarters: " + quarters); 
    } 
    if (dimes != 0) { 
    System.out.print(" Dimes: " + dimes); 
    } 
    if (nickels != 0) { 
    System.out.print(" Nickels: "+ nickels);  
    } 
    if (pennies !=0) { 
    System.out.println(" Pennies: " + pennies);  
    } 




} 
ChangeDispenser() { 
    quartersLeft = QUARTERS_PER_ROLL; 
    dimesLeft = DIMES_PER_ROLL; 
    nickelsLeft = NICKELS_PER_ROLL; 
    penniesLeft = PENNIES_PER_ROLL; 
    pennyRollsAdded = 1; 
    nickelRollsAdded = 1; 
    dimeRollsAdded = 1; 
    quarterRollsAdded = 1; 
} 






public int getPenniesLeft() { 
    return penniesLeft; 
} 

public void setPenniesLeft(int penniesLeft) { 
    this.penniesLeft = penniesLeft; 

    if (penniesLeft <= 0) { 
     pennyRollsAdded = pennyRollsAdded++; 
    } 
} 

public int getNickelsLeft() { 
    return nickelsLeft; 
} 

public void setNickelsLeft(int nickelsLeft) { 
    this.nickelsLeft = nickelsLeft; 

    if (nickelsLeft <= 0) { 
     nickelRollsAdded = nickelRollsAdded++; 
    } 
} 

public int getDimesLeft() { 
    return dimesLeft; 
} 

public void setDimesLeft(int dimesLeft) { 
    this.dimesLeft = dimesLeft; 

    if (dimesLeft <= 0) { 
     dimeRollsAdded = dimeRollsAdded++; 
    } 
} 

public int getQuartersLeft() { 
    return quartersLeft; 
} 

public void setQuartersLeft(int quartersLeft) { 
    this.quartersLeft = quartersLeft; 

    if (quartersLeft <= 0) { 
     quarterRollsAdded = quarterRollsAdded++; 
    } 
} 

public int getPennyRollsAdded() { 
    return pennyRollsAdded; 
} 

public void setPennyRollsAdded(int pennyRollsAdded) { 
    this.pennyRollsAdded = pennyRollsAdded; 
} 

public int getNickelRollsAdded() { 
    return nickelRollsAdded; 
} 

public void setNickelRollsAdded(int nickelRollsAdded) { 
    this.nickelRollsAdded = nickelRollsAdded; 
} 

public int getDimeRollsAdded() { 
    return dimeRollsAdded; 
} 

public void setDimeRollsAdded(int dimeRollsAdded) { 
    this.dimeRollsAdded = dimeRollsAdded; 
} 

public int getQuarterRollsAdded() { 
    return quarterRollsAdded; 
} 

public void setQuarterRollsAdded(int quarterRollsAdded) { 
    this.quarterRollsAdded = quarterRollsAdded; 
} 
public String makeChange(int amount) { 


    if (amount > 99 || amount < 0) { 
     System.out.println(""); 
    } 

    quarters = amount/25; 

    amount = amount % 25; 

    dimes = amount/10; 

    amount = amount % 10; 

    nickels = amount/5; 

    amount = amount % 5; 

    pennies = amount; 




    do { 

     if (quarters != 0) { 
      System.out.print(" Quarters: " + quarters); 
     } 
     if (dimes != 0) { 
      System.out.print(" Dimes: " + dimes); 
     } 
     if (nickels != 0) { 
      System.out.print(" Nickels: " + nickels); 
     } 
     if (pennies != 0) { 
      System.out.println(" Pennies: " + pennies); 
     } 
    } while (amount > 0 && amount <= 99); 

    return "Quarters: " + quarters + " Dime: " + dimes + " Nickels: " + nickels + " Pennies: " + pennies; 

} 
public void writeReport() { 


    System.out.println("Coins Left:"); 
    System.out.println("Quarters: " + quartersLeft); 
    System.out.println("Dimes: "+ dimesLeft); 
    System.out.println("Nickels: " + nickelsLeft); 
    System.out.println("Pennies: " +penniesLeft); 
    System.out.println("Rolls Added: "); 
    System.out.println("Quarters: "+ quarterRollsAdded); 
    System.out.println("Dimes: " + dimeRollsAdded); 
    System.out.println("Nickels: " + nickelRollsAdded); 
    System.out.println("Pennies: " + pennyRollsAdded); 





} 

} 

這裏是一個單獨的驅動程序類來運行程序。

package changedispenser; 

    import java.util.Random; 


public class ChangeDispenserDriver { 

public static void main(String[] args) { 
    ChangeDispenser changeMachine = new ChangeDispenser(); 
    Random rand = new Random(); 
    int amount; 
    for (int i = 0; i < 1000; i++) { 
     amount = rand.nextInt(99) + 1; 
     System.out.println("Amount: " + amount + ": Change = " + changeMachine.makeChange(amount)); 
    } 
    changeMachine.writeReport(); 
} 
} 
+0

您還沒有閉合的主要方法 – Taylor

回答

6

你正在創造另一種方法裏面的方法,一個禁忌:

public static void main(String[] args) { 

public String makeChange(int amount) { 

這是一個地方良好的代碼格式幫助。由於缺乏經常和明智的縮進,你的格式不太好。努力設計好你的代碼格式,它將爲你帶來紅利。

舉例來說,你會馬上看到:

public static void main(String[] args) { 
    public String makeChange(int amount) { 
    //... 
    } 

    // ... 

} 

...你正在築巢的方法。


編輯

關於你最新的代碼,我不能說,我經歷了所有的它去,但這是很危險的:

do { 
    if (quarters != 0) { 
     System.out.print(" Quarters: " + quarters); 
    } 
    if (dimes != 0) { 
     System.out.print(" Dimes: " + dimes); 
    } 
    if (nickels != 0) { 
     System.out.print(" Nickels: " + nickels); 
    } 
    if (pennies != 0) { 
     System.out.println(" Pennies: " + pennies); 
    } 
    } while (amount > 0 && amount <= 99); 

你的循環依賴金額更改爲允許循環結束的值,但實際上哪裏更改了循環內的中的金額?如果你不改變循環內的數量,它將如何退出循環。你不這樣做,所以循環可以(並且)永遠循環。

+2

「好的代碼格式化幫助」 - 這是不強調不夠。 – nhgrif

+0

啊謝謝你,我已經改變了我的代碼,現在看起來像 – Tonno22

+0

啊,現在我已經修復了我的代碼,它沒有輸出任何東西,但是構建成功了,我無法向你展示我的新功能代碼雖然在這個評論中,因爲它太長了:/ – Tonno22

0

氣墊船是正確的,你會解決它的辦法就是將它們分開

public static void main (String[]args){ 
    System.out.println(makeChange(5)); 
} 

public String makeChange(int amount){ 
    .... 
} 
相關問題