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