2017-07-03 46 views
-3

請溫和一點,因爲這是我第一次編程課,也是我第一次做這樣的事情。Java新手入門,有數學編碼問題

我負責與創建基於關閉用戶將在分鐘的手機計劃創建一個Java程序(只有我這個類的第二個星期)。

基本通話400分鐘,$ 30每分鐘超過0.35。 標準會話600分鐘,40美元,每分鐘0.30美元。
無限制是超過600分鐘,每分鐘60美元。

我遇到的問題是這樣的數學部分。無論我投入多少分鐘,它總是會返回相同的美元金額,即140美元。

我已經嘗試了所有不同類型的網絡上的建議,具有相同的結果。

我的代碼可能是混亂和我道歉,就像我說的,我一直在嘗試各種不同的東西,說我會回去和清理一些,當我得到這個工作正常。

我需要顯示的用戶輸入分鐘的量,然後告訴他們是最好的計劃基於她們就entred的分鐘,他們可以有多少期望支付。

任何幫助將不勝感激。現在我已經絞盡腦汁3天了,星期一是午夜。

import java.util.Scanner; 
    import java.util.Formatter; 
    public class Java_Lab_2 { 

    public static void main(String[] args) { 
     Scanner Keyboard = new Scanner(System.in); 
     Scanner scan = new Scanner(System.in); 

     // Different Talk Plans 
     final double basicTalk = 30.00; 
     final double standardTalk = 40.00; 
     final double unlimtedTalk = 60.00; 
     final double basicextramin = 0.35; 
     final double standardextramin = 0.30; 


     // Minutes per plan    
     int basicMinutes; 
     basicMinutes = 400; 
     int standardMinutes; 
     standardMinutes = 600; 
     String unlimitedMinutes = "unlimited"; 

     // Extra Charge per min per plan    
     String unlimited = "included"; 

     //Number of minutes Basic 
     int numberOfMins = 0; 
     int extraMins = (basicMinutes-numberOfMins); 
     double extraMinCharge = (extraMins * basicextramin); 



     // Get number of minutes spent 

     System.out.println("How many talk minutes do you use per month?"); 
     numberOfMins = scan.nextInt(); 

     // Best Plan 
     if (numberOfMins <= 400) { 
      System.out.println("The best plan (s) for you is Basic Talk "); 
      System.out.println("Expect to pay $" + basicTalk);} 


     if ((numberOfMins > 401) &&(numberOfMins <428)) { 
      System.out.println("The best plan (s) for you is Basic Talk"); 
      System.out.format("Expect to pay $%-5.2f", + extraMinCharge); 
+5

分鐘數計算「是由星期一午夜到期。」在哪個時區?但更一般而言,您的截止日期不是我們的最後期限。但這並不排除尋求幫助。請注意,您不會在此代碼中返回任何內容,因此當您說「它始終返回」時,很難看出您的意思。 –

+4

歡迎來到堆棧溢出!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然遇到問題,請隨時返回一個[最小,完整且可驗證的示例](http://stackoverflow.com/help/mcve),以說明您的問題。 –

+0

而不是發佈完整的問題,將其分成幾部分,並要求產生更好的結果。 :) –

回答

0

。在你的代碼的順序問題:你做

int numberOfMins = 0; 
    int extraMins = (basicMinutes-numberOfMins); 
    double extraMinCharge = (extraMins * basicextramin); 

你需要讓你有類似

System.out.println("How many talk minutes do you use per month?"); 
    int numberOfMins = scan.nextInt(); 

    int extraMins = (basicMinutes-numberOfMins); 
    double extraMinCharge = (extraMins * basicextramin); 

所以,你不與計算重新排序此第一設置的分鐘數,否則你設置爲0

+0

謝謝大家的建議,非常感謝 – Zombiekitten

+0

不用擔心,你解決了這個問題嗎?你明白你出錯的地方嗎? – MartinByers

+0

我的問題確實得到解決。謝謝大家,爲你的時間和你的幫助。 – Zombiekitten