內容:Function,recurstion,struct
函式
type function_name(parameters) {
/* do something */
return variable;
}
type: function會回傳甚麼型別的變數
function_name: function的名字
parameters: function的參數
return: function結束並回傳變數
BTW要使用前宣告!
int plus_one(int number) {
return number + 1;
}
type: 回傳一個整數
function_name: 命名為plus_one
parameters: 傳入一個整數number
return: function結束並回傳number+1
int a = 3, b = 5;
swap(a, b);//單純交換
cout << a << ' ' << b << "\n";
可以做為變數的都可以當回傳值...
但如果沒有回傳任何東西呢?
void print_hello() {
cout << "hello\n";
}
只能做為Return Type , 不能作為變數型別
void 沒有回傳變數,連return都可以省略owo
Default parameters
可傳可不傳ㄉ參數
int multiply(int a, int b = 2){
return a*b;
}
int num1 = multiply(3);
int num2 = multiply(3,2);
// num1 = num2
//default的參數一定要放最後面!
Function結束並回傳
當Function Type不是void時,就需要return
Return的用處:
結束Function的執行
int divide(int a,int b){
if(b==0){
return -1;
}
return a/b;
}
void也可以return喔!
(只是沒有return值,直接 return;)
回傳數值給呼叫者
int add(int a,int b){
return a+b;
}
int num = add(1,2);
cout<<num<<endl;
//num = 3
void也可以return喔!
(只是沒有return值,直接 return;)
回傳數值給呼叫者
int formula(int a,int b,int c){
//solve....
return x1,x2;
}
同時回傳兩個以上的數值?
例:一元二次方程式
不能這樣做!!!
其中一個等等會教,其他的之後STL會教!