如果你剛學完 Java 的條件判斷、方法(method)、類別(class),那今天這個「計算機專案」非常適合練手。我們不只讓ChatGPT幫我們「寫出基本程式碼」,還要請它幫忙優化、除錯,順便理解設計思路。
我給ChatGPT的提示詞(Prompt):
「請用 Java 寫一個簡單的文字版計算機,可以讓使用者輸入兩個數字與運算子(+、-、*、/),再輸出結果。」
ChatGPT 生成的初始程式
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入第一個數字:");
double num1 = sc.nextDouble();
System.out.print("請輸入運算子(+ - * /):");
char op = sc.next().charAt(0);
System.out.print("請輸入第二個數字:");
double num2 = sc.nextDouble();
double result;
switch (op) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 == 0) {
System.out.println("錯誤:除數不能為0!");
return;
}
result = num1 / num2;
break;
default:
System.out.println("不支援的運算子!");
return;
}
System.out.println("結果是:" + result);
}
}
這個版本可以執行基本運算,但我們還能請 ChatGPT 幫我們改進!
第二步:讓ChatGPT幫忙優化
我繼續輸入:「幫我把上面的程式改成可以持續運算,直到輸入exit為止」
AI 幫我改寫成這樣
System.out.print("請輸入運算(格式:數字 運算子 數字),或輸入 exit 結束:");
String input = sc.nextLine();
if (input.equalsIgnoreCase("exit")) {
System.out.println("程式結束,再見!");
break;
}
String[] parts = input.split(" ");
if (parts.length != 3) {
System.out.println("輸入格式錯誤!");
continue;
}
double a = Double.parseDouble(parts[0]);
char op = parts[1].charAt(0);
double b = Double.parseDouble(parts[2]);
double result = 0;
boolean valid = true;
switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/':
if (b == 0) {
System.out.println("錯誤:除數不能為0!");
valid = false;
} else result = a / b;
break;
default:
System.out.println("不支援的運算子!");
valid = false;
}
if (valid) System.out.println("結果:" + result);
}
這樣就變成一個可以「重複使用」的命令列計算機了
是不是很像你在學校做的小專案?
延伸練習:讓AI幫你升級
我還請ChatGPT 幫我:加上「開根號、次方」功能、幫我拆成一個Calculator類別+主程式
以及幫我畫出 UML 類別關係圖
這些都能透過一句 Prompt 完成!
甚至可以問它:「怎麼改成圖形介面版(GUI)」
它會用 Swing 幫你寫出可視化版本
今日心得
AI不只是「幫我寫程式」,而是「幫我學會怎麼想」。
在ChatGPT的幫助下,我學會問出更好的問題,
也能觀察它的程式邏輯並加以改寫。
現在寫Java,真的不再只是背語法,
而是能和AI一起討論、實作、修正、成長