iT邦幫忙

2025 iThome 鐵人賽

0
生成式 AI

生成式 AI 從入門到實作:用 ChatGPT 打造你的第一個 AI 幫手系列 第 14

Day 14:Java 小專案 2 — 請 ChatGPT 幫我做一個計算機!從程式生成到邏輯優化

  • 分享至 

  • xImage
  •  

如果你剛學完 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一起討論、實作、修正、成長


上一篇
Day 13:Excel 樞紐分析 + ChatGPT — 用自然語言查數據,讓分析更聰明!
下一篇
Day 15:AI 幫規劃 PowerPoint — 從大綱到草稿內容,一鍵完成簡報雛形!
系列文
生成式 AI 從入門到實作:用 ChatGPT 打造你的第一個 AI 幫手30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言