# 函式(function) ## 函式的用途 你可能會發現,我們有時候需要頻繁的使用同一段的程式,但給的參數又不同,導致需要不斷複製與更改;或是使用的次數太多,導致同一段程式出現在各種地方,這些情況會讓程式變得非常難閱讀。 這時候函式就派上用場了,函式就像是一台機器,先寫好機器的運作方式,需要使用時丟材料進去,機器便會幫你完成加工,並適當的給出回傳值。 ## 宣告 函式與其他程式不同,因為是額外設置的「函式」,因此需要宣告在```main()```外面,而宣告的寫法如下: ```cpp 回傳資料型態 函式名稱(變數們){ ... return (若需要:回傳值); } ``` 比較不同的是,函式會有一種新的資料型態```void```,若為此型態的函式,則只會「執行」,不會「回傳」。 例如debug時需要不斷呼叫的自定義輸出函式: ```cpp= //輸出num陣列中所有值 int num[2000]; void print(){ for(auto i : num) cout << i << ' '; return; } ``` ## 用例 :::spoiler 計算最大公因數 ```cpp= #include <iostream> using namespace std; int GCD(int x, int y){ if(x % y == 0) return y; return GCD(y, x % y); } int main(){ int a, b; cin >> a >> b; cout << GCD(a, b); } ``` :::