C++ 基礎語法

Ian Wen

Hello World

你的第零個C++程式

Step 1 引用函式庫

#include <iostream>
  
using namespace std;
  
int main() {
    cout << "Hello, World!";
}
# 範例 Code

Step 2 設定命名空間

#include <iostream>
  
using namespace std; // 標準函式都放在std這個命名空間下
  
int main() {
    cout << "Hello, World!";
}
# 範例 Code

Step 3 main函式 & 輸出

#include <iostream>
  
using namespace std;
  
int main() {
    cout << "Hello, World!" << "\n"; // 輸出字串並換行
}
# 範例 Code

C++不會幫你換行

競賽程式用

特點: 他比endl快

'\n'

endl

專案用

特點: 他比'\n' 慢,但他會清空緩存區,避免緩存區占掉太多資源

# 換行什麼鬼

Step 4 跑你的code囉!

# 範例 Code

以Visual Studio Code為範例

可以安裝一個叫做code runner的插件來跑程式

Step 4 跑你的code囉!

# 範例 Code

右下角齒輪點開

這三個都打勾

Step 4 跑你的code囉!

# 範例 Code

這個按鈕按下去

恭喜你已習得輸出技能!

# 哈哈結束了

變數

Variable

變數

# 變數

資料暫存

變數有名稱 型態 值

Number

100

int

資料型態

# 變數

變數的類別

不同的運算方式

Number

100

int

Number

資料型態

# 變數

常見的變數型態

Number

變數名稱

# 變數

變數名稱有一些規則限制:

 

不能是保留字

只能用半形 大小寫字母 數字 底線 $

不能以數字做為變數開頭 ex: 123apple

大小寫會被視為不同變數 ex: APPLE 和 apple

盡量與變數意義相關

 

常見保留字

# 變數

宣告

#include <iostream>
  
using namespace std;
  
int main() {
    int num1; // 宣告一個整數變數叫做num1
    num1 = 1; // 賦予num值1
    
    int num2 = 2; // 宣告一個整數變數較做num2,並同時賦予它2這個值
}
# PRESENTING CODE

型別 變數名稱 = 值;

輸出

#include <iostream>
  
using namespace std;
  
int main() {
    int num1; // 宣告一個整數變數叫做num1
    num1 = 1; // 賦予num值1
    
	cout << num1; // 輸出num1
}
# PRESENTING CODE

cout << 變數名稱;

陣列

Array

一串連起來的變數

# PRESENTING CODE

0

1

2

3

4

int values[5];

index:

value:

100

123

25

52

1

範例code

# PRESENTING CODE
#include <iostream>
  
using namespace std;
  
int main() {
    int values[5] = {100, 123, 25, 52, 1}; 
    // 宣告一個int陣列叫做values,並賦值
    cout << values[4] << '\n';
    // 輸出values中index為4的值並換行
    cout << values[5] << '\n';
    // 不合法的操作,會出現Segmentation Fault
}

範例code - 改值

# PRESENTING CODE
#include <iostream>
  
using namespace std;
  
int main() {
    int values[5] = {100, 123, 25, 52, 1}; 
    values[4] = 123; // 將index為4的值改為123
    cout << values[4] << "\n";
}

輸入

input

cin >> 變數

#include <iostream>
  
using namespace std;
  
int main() {
    int num;
    cin >> num; // 輸入num的值
    cout << num; // 輸出num
}
# PRESENTING CODE

cin的特性

# PRESENTING CODE

讀到空白或換行就算結束

輸入123 123

讀取只讀一次,所以num讀到的值是123

啊我想讀整行哩?

# PRESENTING CODE
#include <iostream>
  
using namespace std;
  
int main() {
    string sentence;
   	getline(cin, sentence); // 輸入
    cout << "User said: " << sentence; // 輸出
}

getline(cin, 變數)

運算子

+ - * / %

常見的運算子

# PRESENTING CODE

= 與數學上的不同,用於把右邊的東西複製丟進左邊

+ 加號,同時也可以用於字串連接

- 減號,左邊減右邊

* 乘號

/ 除號,int相除的話,會無條件捨去 ex: 5 / 2 = 2

% 取模,取整除完以後的餘數 ex: 5 % 2 = 1

運算規則

# PRESENTING CODE

先乘除後加減 ex: 5*2+1 = 11

可以加 () ,括弧內的先算 ex: 5*(2+1) = 15

懶人可以用這些

a = a + b 可以寫成 a += b 同理可用 -= *= /= %=

a += 1 可以寫成 a++ 同理可用 a--

a++ 也可以寫 ++a,一個是後加,一個是先加

假設a = 1,cout << a++就會是1,但是++a會輸出2

關係運算子

# PRESENTING CODE

== != > < >= <= 這幾種運算子可以代表兩邊變數的關係

! 代表不的意思

邏輯運算子

&& 且

|| 或

! 反邏輯,ex: !(true) = false

判斷式

if else

# PRESENTING CODE

if else 判斷式

#include<iostream>
using namespace std;
int main() {
	if (判斷1) {
        在判斷1成立時執行的東東
    }
    else if (判斷2) {
    	在判斷2成立時執行的東東
    }
    else {
    	在上面所有判斷都不成立的情況下執行的東東
    }
}
# PRESENTING CODE

實戰一下

#include<iostream>
using namespace std;
int main() {

	cout << "human? (yes/no)\n"; // 輸出詢問
    
    string answer;
    cin >> answer; // 輸入回應

	if (answer=="yes") {
        cout << "hi, human.\n";
    }
    else if (answer=="no") {
    	cout << "hi\n";
    }
    else {
    	cout << "you should answer yes or no\n";
    }
    
}
# PRESENTING CODE

實戰一下

情況1

情況2

情況1 2不成立

迴圈

for while

迴圈是啥?

# PRESENTING CODE

想像一下,如果你想做一件重複

的事情很多次,程式中要怎麼實現?

比如說 輸出hi五次

 

cout << "hi";

cout << "hi";

cout << "hi";

cout << "hi";

cout << "hi";

好麻煩喔,有更簡單的方法嗎?

 

for 迴圈

通常用於已知執行次數,或是執行次數的範圍時使用

# PRESENTING CODE
for (初始條件; 每次執行前的判斷; 每次執行完要做的事) {
	執行一些東西
}

for 迴圈

範例: 有個數字i 每次執行前檢查i是否小於5 執行完以後i遞增1 執行輸出hi

# PRESENTING CODE
#include<iostream>
using namespace std;
int main() {
    for (int i=0; i<5; i++) {
	    cout << "hi\n";
    } 
}

while 迴圈

用於,在判斷成立情況下持續執行直到判斷不成立

# PRESENTING CODE
while (判斷) {
	執行一些東東
}

while 迴圈

範例: 跟剛剛for的範例做的事情一樣

# PRESENTING CODE
#include<iostream>
using namespace std;
int main() {
    int i=0;
    while (i<5) {
        cout << "hi\n";
        i++;
    }
}

可怕的東西 - while true

持續執行,直到永遠 (你的扣最好不要出現這東西)

# PRESENTING CODE
#include<iostream>
using namespace std;
int main() {
    while (true) {
        cout << "hi\n";
    }
}

cout << endl;

簡報到此結束

C++ 基礎語法 面試簡報

By wen Ian

C++ 基礎語法 面試簡報

  • 531