前一天學習了 switch,讓使用者可以透過數字選擇「飲食、交通、購物、娛樂」等消費分類。
今天要學 Java 裡另一個很重要的觀念:for 迴圈(for loop)。
在寫程式的時候,常常會遇到需要重複執行相同事情的情況。如果每一次都重新寫一樣的程式碼會很麻煩,所以就可以利用迴圈來處理。
什麼是 for 迴圈?
for 迴圈可以讓一段程式重複執行指定的次數。
基本寫法是:
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
執行結果:
1
2
3
4
5
這裡的:
int i = 1
代表從 1 開始。
i <= 5
代表只要 i 小於或等於 5,就繼續執行。
i++
代表每執行一次,i 就增加 1。
所以這個迴圈總共會執行 5 次。
為什麼記帳系統需要迴圈?
真正的記帳系統不可能只有一筆消費紀錄。
例如今天可能有:
早餐 60 元
捷運 30 元
午餐 120 元
飲料 50 元
如果每一筆資料都自己寫一次:
System.out.println("早餐 60 元");
System.out.println("捷運 30 元");
System.out.println("午餐 120 元");
System.out.println("飲料 50 元");
當資料變成幾十筆甚至幾百筆時,就會非常麻煩。
這時候就可以利用迴圈幫忙。
今天的小實作:顯示多筆消費紀錄
今天先準備幾筆簡單的消費資料,再使用 for 迴圈把它們全部顯示出來。
public class Main {
public static void main(String[] args) {
String[] items = {"早餐", "捷運", "午餐", "飲料"};
int[] amounts = {60, 30, 120, 50};
System.out.println("===== 我的消費紀錄 =====");
for (int i = 0; i < items.length; i++) {
System.out.println(
(i + 1) + ". " + items[i] + ":" + amounts[i] + " 元"
);
}
}
}
執行結果:
===== 我的消費紀錄 =====
為什麼 i 是從 0 開始?
今天的程式出現:
int i = 0;
而不是昨天看到的從 1 開始。
這是因為 Java 陣列中的第一個位置是從 0 開始計算。
例如:String[] items = {"早餐", "捷運", "午餐"};
實際上是:
items[0] → 早餐
items[1] → 捷運
items[2] → 午餐
所以:
items[i]
就可以搭配 for 迴圈依序取得每一筆資料。
再加入總支出計算
既然已經可以依序讀取每一筆金額,也可以順便計算總共花了多少錢。
public class Main {
public static void main(String[] args) {
String[] items = {"早餐", "捷運", "午餐", "飲料"};
int[] amounts = {60, 30, 120, 50};
int total = 0;
System.out.println("===== 我的消費紀錄 =====");
for (int i = 0; i < items.length; i++) {
System.out.println(
(i + 1) + ". " + items[i] + ":" + amounts[i] + " 元"
);
total = total + amounts[i];
}
System.out.println("====================");
System.out.println("總支出:" + total + " 元");
}
}
執行結果:
===== 我的消費紀錄 =====
這次每執行一次迴圈,就把目前的消費金額加入 total。
例如:
0 + 60 = 60
60 + 30 = 90
90 + 120 = 210
210 + 50 = 260
最後就可以得到今天的總支出 260 元。
Day 6 學習心得
今天學習了 Java 的 for 迴圈,了解如何讓程式自動重複執行相同的工作。
一開始看到 i++ 和 items[i] 有點不熟悉,但實際把它放進記帳程式後,就比較容易理解它的用途。利用迴圈不只可以一次顯示多筆消費紀錄,也可以順便計算所有消費的總金額。
目前消費資料還是先直接放在程式裡,之後希望可以讓使用者自己新增多筆消費紀錄,讓記帳系統變得更完整。