型別
存東西之前,要先說那是哪一種東西。 · ⏱ 約 25 分鐘
你會學到三件事
- 一個值存起來之前,要先說它是哪一種(型別)
- 四種基本型別,以及選錯會發生什麼
- 名字和文字長得像,意思完全不同
開始之前
上一課你會印出一句寫死的話了:
cout << "Hello!" << endl;
問題是——那句話寫死在程式裡。想印別的,只能回去改程式。
這一課要讓程式記住東西,之後想用就叫它的名字。
一、宣告:型別 + 名字
int main() {
int age = 16;
cout << age << endl;
return 0;
}
這一行叫做一次宣告,而被宣告出來的那個東西有一個名字:
它叫變數(variable)。⚠️ 下一課整整一課在講它,這一課先看型別那一格。
int age = 16; 這一行做了三件事:
| 這一段 |
意思 |
int |
「接下來這個名字,裝的是整數」 |
age |
變數的名字,你自己取的(怎麼取,下一課講) |
= 16 |
一開始裝 16 |
然後 cout << age << endl; ——注意 age 沒有引號。
所以電腦不是印「age」這三個字母,而是去找那個叫 age 的東西,
把它裡面的 16 印出來。
上一課那條規則現在派上用場了:
"age" 是一段文字,age 是一個名字。
試試看把 16 改成 17,執行——印出來的跟著變。
程式沒改,只有資料改了。
二、四種基本型別
int 只裝得下整數。身高 1.72 塞進 int 會被砍成 1
——⚠️ 不是四捨五入,是把小數點後面直接丟掉。
型別是一個承諾:「我只會裝這一種東西。」
而承諾換到的是:電腦知道要留多大的位子、以及 + 該怎麼算。
所以宣告的時候要先說清楚是哪一種:
int age = 16; // 整數
double height = 1.72; // 有小數點的數
char grade = 'A'; // 一個字元
bool passed = true; // 只有兩種可能:true 或 false
| 型別 |
裝什麼 |
例子 |
int |
整數 |
16、-3、0 |
double |
有小數點的數 |
1.72、3.14 |
char |
一個字元 |
'A'、'7'、' ' |
bool |
真或假 |
true、false |
⚠️ bool 印出來是 1 或 0,不是 true 或 false
——那是 C++ 的習慣,不是你寫錯了。
// 後面那些字是寫給人看的——電腦跑到 // 就跳過那一行剩下的部分。
積木盤上那顆叫「備註」;你在別的地方也會看到它被叫做「註解」,
是同一件事。
⚠️ char 用單引號 'A',不是雙引號。
單引號 'A' 是一個字元;雙引號 "A" 是一段文字(碰巧只有一個字)。
它們在 C++ 裡是兩種不同的東西,這一點以後會一直遇到。
三、四個一起印
int main() {
int age = 16;
double height = 1.72;
char grade = 'A';
bool passed = true;
cout << age << endl;
cout << height << endl;
cout << grade << endl;
cout << passed << endl;
return 0;
}
執行:
16
1.72
A
1
🔴 最後那個 1 就是 true——它不會印出 true 這四個字母。
切到積木那邊看一眼——四個「宣告」積木疊在一起,
每一塊的下拉選單裡就是 int / double / char / bool。
型別不是你背下來的規矩,它是積木上一個看得見的格子。
完成的樣子
這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。
1#include <iostream>2using namespace std;3int main() {4 int age = 16;5 double height = 1.72;6 char grade = 'A';7 bool passed = true;8 cout << age << endl;9 cout << height << endl;10 cout << grade << endl;11 cout << passed << endl;12 return 0;13}
換你了
把 height 改成 int,執行看看印出什麼。
(會印 1。想一下為什麼——int 不是四捨五入,是直接把小數點後面丟掉。)
到編輯器做這一題:練習:把 height 改成 int
做一個
用兩個變數存長和寬(長 7、寬 4),印出面積,再印出周長。
⚠️ 不要把 28 和 22 直接打進去。改一下長或寬,兩個答案都要跟著變——那才叫用變數。
到編輯器做這一題:做一個:長方形的面積與周長
這一課你做了什麼
- 你宣告了四個變數,各自裝著不同種類的東西
- 你知道了
int / double / char / bool 分別裝什麼
- 你分得出名字和文字——差別在有沒有引號
如果卡住了
| 你看到 |
多半是因為 |
印出來是 age 三個字 |
加到引號了。變數名字不要引號 |
身高印出 1 |
型別寫成 int 了。小數要用 double |
'A' 那行報錯 |
用了雙引號。單一字元要用單引號 ' |
| 說某個名字沒宣告過 |
名字打錯字了——Age 和 age 是兩個不同的名字 |
在編輯器打開這一課 →