iT邦幫忙

2

案例說明ChatGPT是否能勝任資深Java程式設計師-Part I:ChatGPT的程式碼

  • 分享至 

  • xImage
  •  

ChatGPT橫空出世之後,各行各業人心惶惶,害怕自己的職場地位是否會被AI所取代。即便是程式設計師也不例外。接下來,將以自己身為Java程式設計師的專業角度,來見識見識ChatGTP所回覆的Java程式碼,能否勝任『資深Java程式設計師』所需具備的專業能力。


我們先詢問ChatGPT針對以下這個問題會給出怎樣的Java程式碼。
問題如下:

我有一組資料: 
1=滿福堡餐、2=豬肉滿福堡餐、3=豬肉滿福堡加蛋餐、4=無敵豬肉滿福堡加蛋餐、5=青蔬滿福堡餐。
當使用者輸入1時,印出『您好,請問您點的是滿福堡餐嗎?』
輸入2時,印出『您好,請問您點的是豬肉滿福堡餐嗎?』
輸入3時,印出『您好,請問您點的是豬肉滿福堡加蛋餐嗎?』
輸入4時,印出『您好,請問您點的是無敵豬肉滿福堡加蛋餐嗎?』
輸入5時,印出『您好,請問您點的是青蔬滿福堡餐嗎?』

以下是聊天的過程:
https://ithelp.ithome.com.tw/upload/images/20230311/20109107NahJI4IIdY.png
https://ithelp.ithome.com.tw/upload/images/20230311/201091077x1Rr0jwJK.png
https://ithelp.ithome.com.tw/upload/images/20230311/20109107yuH7ZA92P8.png
上面ChatGPT提供的程式碼如下:

import java.util.Scanner;
public class BurgerOrder {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入您要點的餐點編號(1~5):");
        int orderNum = scanner.nextInt();
        switch(orderNum) {
            case 1:
                System.out.println("您好,請問您點的是滿福堡餐嗎?");
                break;
            case 2:
                System.out.println("您好,請問您點的是豬肉滿福堡餐嗎?");
                break;
            case 3:
                System.out.println("您好,請問您點的是豬肉滿福堡加蛋餐嗎?");
                break;
            case 4:
                System.out.println("您好,請問您點的是無敵豬肉滿福堡加蛋餐嗎?");
                break;
            case 5:
                System.out.println("您好,請問您點的是青蔬滿福堡餐嗎?");
                break;
            default:
                System.out.println("您輸入的餐點編號無效。");
                break;
        }
        scanner.close();
    }
}

初略看一下class的命名是BurgerOrder,是符合題目且可讀性高的命名。另外,ChatGPT選用了switch而非if-else陳述式來完成這個題目,表示對於程式碼的語法選擇也有一定的水準,並非初學者的級別。
即便如此,還是得實測看看ChatGPT給的程式代碼能否正確執行達到我們的題目要求。
https://ithelp.ithome.com.tw/upload/images/20230311/20109107eLL4vxst5q.png
https://ithelp.ithome.com.tw/upload/images/20230311/20109107PmiRHuBw7r.png
執行結果是能滿足需求的。/images/emoticon/emoticon34.gif


接下來,要看看程式設計是否具備可維護性、可擴展性。再加入一個『6=鬆餅餐』,看看ChatGPT會如何幫我們調整程式碼吧。
以下是提出新需求的聊天過程:
https://ithelp.ithome.com.tw/upload/images/20230311/20109107BNISewMRhJ.png
https://ithelp.ithome.com.tw/upload/images/20230311/20109107cRKO2yUqBW.png
/images/emoticon/emoticon67.gif比較可惜的是,

// 提示是Hard code寫死,如果是人為修改加入多筆資料容易key錯!
System.out.print("請輸入您要點的餐點編號(1~6):");

另外,

// 直接在加一個case區段,如果是人為修改加入多筆資料容易出錯,例如某區段少打一個break!
case 6:
    System.out.println("您好,請問您點的是鬆餅餐嗎?");
    break;

下一篇再提供我對於同樣的問題所給出的程式解決方案吧!
/images/emoticon/emoticon29.gif


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言