複利

2017-10-20 16 views
0
import java.util.*; 
public class Project3{ 

public static void main(String[] args) 
{ 

Scanner key = new Scanner (System.in); 

double rate = 0.05; 
double annually, monthly, daily; 
double balance; 
int year = 10 ; 

System.out.println("Enter the amount you will like to deposit or type exit to end."); 
int deposit = key.nextInt(); 

annually = deposit * Math.pow((1 + rate/1),year); 
monthly = deposit * Math.pow((1 + rate/12),year); 
daily = deposit * Math.pow((1 + rate/365),year); 

while (deposit) 
{ 

} 




System.out.println(annually); 
System.out.println(monthly); 
System.out.println(daily); 
} 
} 

這是我目前擁有的。我試圖完成的是做一個循環來添加下一個結果的第一個結果。也可以製作一個配方,而不是有三個配方來找到每年,每月和每天的配方。複利

+0

請解釋你的意思是'做一個循環來添加第一個結果與下一個' – Harshit

+0

「使用一個循環,增加每個時間段的興趣,也就是說,不要使用某種代數公式。你的程序應該有一個外部循環,允許用戶重新計算新的餘額和利率,重複計算直到用戶要求結束程序。「 – Luis

+0

那麼,如果你想從循環的第一次迭代中添加一個值,那麼爲什麼不把它存儲在一個新的變量中呢?你將每個公式存儲在自己的變量中是正確的,除非我把它全部放在一行上。注意:如果這是作業,可以考慮請求你的老師幫忙。在QA網站上有人爲你寫作業是非常不道德的。 –

回答

-2

一些建議 - 因爲你要檢查用戶輸入的對陣雙方Stringint類型,你可以定義一個String類型變量來保存用戶的輸入,然後做一個try/catch解析它作爲一個Integer,如果它不是Integer,請檢查輸入是否等於"exit"(使用String.equals()方法)。

import java.util.*; 
public class Project3{ 

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

     double rate = 0.05; 
     double annually = 0, monthly = 0, daily = 0; 
     double balance; 
     int year = 10, deposit = 0 ; 
     String userinput = ""; 

     do { 
      try { 
       System.out.println("Enter the amount you will like to deposit or type exit to end."); 
       userinput = key.nextLine(); 
       deposit = Integer.parseInt(userinput); 
      } 
      catch (Exception e){ 
       if (!userinput.equals("exit")){ 
        System.out.println("Didn't recognize that input, please try again..."); 
       } 
       else{ 
        break; 
       } 
      } 
     } while (!userinput.equals("exit")); 

     annually += deposit * Math.pow((1 + rate/1),year); 
     monthly += deposit * Math.pow((1 + rate/12),year); 
     daily += deposit * Math.pow((1 + rate/365),year); 

     System.out.println(annually); 
     System.out.println(monthly); 
     System.out.println(daily); 
    } 
} 

根據您想要的輸出,你可以很容易地在年底調整環的範圍內的每個有效deposit輸入後顯示的金額,或只有一次,用戶輸入"exit"後。

希望這會有所幫助。

+2

-1爲他們寫出某人的功課。教授課程的想法不是爲學習者編程,而是幫助他們思考如何自己解決問題。 –

+0

向學習者展示缺失的概念我相信可以幫助他們解決問題。感謝-1和你的解釋。 – davedwards

+1

但是爲他們編寫代碼並沒有向他們展示缺少的概念,而只是向他們展示瞭解決方案的簡單方法。 –

1

首先,要求某人寫出你的家庭作業確實是不道德的,從長遠來看對你毫無幫助。如果你不關心長遠,考慮採取不同的課程。在職業場景中,你需要自己編寫代碼。

其次,真正回答你的問題,這裏有一些提示:

好像你要收集來自用戶的值(存款),然後計算說價值複利。你的程序也不需要退出,直到用戶說退出。即他們想要計算一組數字的CI。

第一步是檢查用戶的值。如果它是一個數字,那就對它進行計算。如果它是一個字符串,那麼檢查它是否「退出」。在Java中,這相當於寫出一條if語句,並利用非常有用的「instanceof」關鍵字。如果你還沒有學到這些,請給this一個閱讀,或問你的老師。

對於計算部分,您只需對用戶的輸入進行計算,而輸入不是設置爲「退出」的字符串。

最後,打印出您的計算結果。

就是這樣。你的代碼已經有了計算公式,所以你只需要編寫處理用戶輸入的邏輯。