2015-02-11 59 views
0

嗨,我是編程新手,我想知道如何簡化下面的代碼。有沒有辦法可以設置一個變量,而不是設置1-6個月?如何簡化以下類

double RATE; 
double SAVING; 
double MONTH1; 
double MONTH2; 
double MONTH3; 
double MONTH4; 
double MONTH5; 
double MONTH6; 

System.out.print("Enter the monthly saving amount: "); 
SAVING = input.nextDouble(); 

RATE = 1.00417; 

MONTH1 = SAVING * RATE; 
MONTH2 = (MONTH1 + SAVING) * RATE; 
MONTH3 = (MONTH2 + SAVING) * RATE; 
MONTH4 = (MONTH3 + SAVING) * RATE; 
MONTH5 = (MONTH4 + SAVING) * RATE; 
MONTH6 = (MONTH5 + SAVING) * RATE; 

System.out.println("After the sixth month, the account value is $" + (float) MONTH6); 
+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html – 2015-02-11 20:20:54

+0

夥計們,請不要評價問題,因爲1)缺乏知識/經驗,或2)缺乏先前的研究。 S.O.是許多所有技能水平的程序員學習的資源,讓我們不要通過排除他們的問題來排除新用戶,除非顯然沒有努力解決問題。 – 2015-02-11 20:51:20

+1

@EvanBechtol我沒有downvote,但downvote按鈕上的工具提示解釋了什麼時候downvoting是合適的:「這個問題沒有顯示任何研究工作;它不清楚或沒有用」。所以,以前的研究缺乏**是一個很好的理由downvote。坦率地說,這個問題是邊界線。 – 2015-02-11 21:07:25

回答

3

你在這裏做什麼什麼:

MONTH1 = SAVING * RATE; 
MONTH2 = (MONTH1 + SAVING) * RATE; 
MONTH3 = (MONTH2 + SAVING) * RATE; 
MONTH4 = (MONTH3 + SAVING) * RATE; 
MONTH5 = (MONTH4 + SAVING) * RATE; 
MONTH6 = (MONTH5 + SAVING) * RATE; 

是你一遍又一遍寫的基本上是同樣的事情。

對於像這樣的重複性任務,迴路總是一個更好的解決方案。

使用循環,您甚至不需要所有這些MONTH變量。下面是一個使用循環,以消除重複的代碼totalMonths個月之後計算所述帳戶值的示例:

int accountValue = 0; 
int monthNumber = 0; 

while (monthNumber < totalMonths) {    // Do what's inside the brackets as long as monthNumber is less than totalMonths. 
    accountValue = (accountValue + saving) * rate; // Update the account value with saving and rate. 
    monthNumber = monthNumber + 1;     // Increase monthNumber by one. 
} 

System.out.println("After " + totalMonths + " months, the account value is $" + accountValue); 

在上面的代碼accountValue的端部將具有總帳戶值之後totalMonths個月過去了。

這是一個非常簡單的例子。試用它,並確保你100%瞭解它。

請注意,我用小寫字母(camelCase)寫下了我的變量名稱,因爲它是Java中常見的naming convention

+1

你的意思是駱駝在你的筆記中。 – 2015-02-11 20:38:00

+0

@Zéychin固定。 – emlai 2015-02-11 20:42:02

+0

還應該注意的是,所有大寫字母中聲明的變量在很大程度上被認爲是常量;它們在程序運行期間從不改變。 +1迴應@zenith – 2015-02-11 20:48:55