程式語言所用的函數(Functions)和數學上的函數有著很相似的觀念,但程式語言的函數比較複雜一點,需要了解底下知識:函數宣告、函數定義、函數呼叫。然而不是所有的程式語言都會有這三種觀念,因此本文會分別以C語言和Python語言來說明這三種觀念(註:C語言也是有版本之分的,請參考 https://en.wikipedia.org/wiki/C_(programming_language)#History)。
函數宣告(Function declaration)
C語言語法如下:
1 | 回傳型態 函數名稱( 參數列 ); |
C語言範例:
1 2 3 4 | int sum(int a, int b); int add(int, int); int min(int x, int y); int max(int, int); |
因為 Python 目前沒有 Function declaration 的語法,請直接使用 Function definition。
函數定義(Function definition)
C語言語法如下:
1 2 3 | 回傳型態 函數名稱( 參數列 ) { 函數主體 } |
C語言範例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | int sum(int a, int b) { return a + b; } int add(int a, int b) { return a + b; } int min(int x, int y) { return x <= y ? x: y; } int max(int x, int y) { return x >= y ? x: y; } |
Python語言語法如下:
1 2 3 4 | def 函數名稱( 參數列 ): "函數說明" 程式碼 return [運算式(Expression)] |
Python語言範例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def sum(a, b): return a + b def add(a, b): return a + b def min(x, y): if x <= y: return x else: return y def max(x, y): if x >= y: return x else: return y |
函數呼叫(Function call)
C語言語法如下:
1 | 函數名稱( 參數列 ); |
C語言範例:
1 2 3 4 | int sumInt = sum(4, 5); int addInt = add(9, 11); int minInt = min(0, 123); int maxInt = max(123, 0); |
Python語言語法如下:
1 | 函數名稱( 參數列 ) |
Python語言範例:
1 2 3 4 | sumInt = sum(4, 5) addInt = add(9, 11) minInt = min(0, 123) maxInt = max(123, 0) |
自訂函數範例
瞭解上述的語法後,就可以自訂函數了,底下提供C語言與Python語言的自訂函數範例。
C 語言範例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> int sum(int a, int b); int add(int, int); int min(int x, int y); int max(int, int); int main(void) { int sumInt = sum(4, 5); int addInt = add(9, 11); int minInt = min(0, 123); int maxInt = max(123, 0); printf("Sum:%d add:%d min:%d max:%d\n", sumInt, addInt, minInt, maxInt); return 0; } int sum(int a, int b) { return a + b; } int add(int a, int b) { return a + b; } int min(int x, int y) { return x <= y ? x: y; } int max(int x, int y) { return x >= y ? x: y; } |
Python語言範例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def sum(a, b): return a + b def add(a, b): return a + b def min(x, y): if x <= y: return x else: return y def max(x, y): if x >= y: return x else: return y sumInt = sum(4, 5) addInt = add(9, 11) minInt = min(0, 123) maxInt = max(123, 0) print("Sum:", sumInt, "add:", addInt, "min:", minInt, "max:", maxInt) |
沒有留言:
張貼留言