C++基礎語法

內容:Function,recurstion,struct

Function

函式

 

你是否有遇過以下問題?

  • 哭阿同個功能的東西一直重複寫
  • 整個扣都很凌亂
  • 好想像python一樣好多方便的函式....

Function saves the day!

Function 101

type function_name(parameters) {
  /* do something */
  return variable;
}

type: function會回傳甚麼型別的變數

function_name: function的名字

parameters: function的參數

return: function結束並回傳變數

BTW要使用前宣告!

Function 101

int plus_one(int number) {
  return number + 1;
}

type: 回傳一個整數

function_name: 命名為plus_one

parameters: 傳入一個整數number

return: function結束並回傳number+1

Return Type

Subtitle

int a = 3, b = 5;
swap(a, b);//單純交換
cout << a << ' ' << b << "\n";

可以做為變數的都可以當回傳值...

但如果沒有回傳任何東西呢?

Return Type

Subtitle

void print_hello() {
  cout << "hello\n";
}

只能做為Return Type , 不能作為變數型別

void 沒有回傳變數,連return都可以省略owo

Parameters

 

Default parameters

可傳可不傳ㄉ參數

int multiply(int a, int b = 2){
    return a*b;
}
int num1 = multiply(3);
int num2 = multiply(3,2);
// num1 = num2
//default的參數一定要放最後面!

Return

Function結束並回傳

當Function Type不是void時,就需要return

Return的用處:

  1. 結束Function的執行
  2. 回傳數值給呼叫者

Return

結束Function的執行

 

int divide(int a,int b){
    if(b==0){
        return -1;
    }
    return a/b;
}

void也可以return喔!

(只是沒有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;)

Return

回傳數值給呼叫者

int formula(int a,int b,int c){
    //solve....
    return x1,x2;
}

同時回傳兩個以上的數值?

例:一元二次方程式

不能這樣做!!!

想要回傳多個值?

  1. std::pair
  2. std::tuple
  3. struct

其中一個等等會教,其他的之後STL會教!

Made with Slides.com