Semorphe

記住資料

給一個值取個名字,之後就叫得動它。 · ⏱ 約 25 分鐘

你會學到三件事

  1. 怎麼幫一個值取名字(宣告一個變數)
  2. 為什麼取名字的時候要先說那是哪一種東西(型態)
  3. 名字和文字長得像,意思完全不同

開始之前

上一課你會印出一句寫死的話了:

cout << "Hello!" << endl;

問題是——那句話寫死在程式裡。想印別的,只能回去改程式。 這一課要讓程式記住東西,之後想用就叫它的名字。

一、取一個名字

int main() {
    int age = 16;
    cout << age << endl;
    return 0;
}

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';     // 一個字元

⚠️ char 用單引號 'A',不是雙引號。

單引號 'A'一個字元;雙引號 "A"一段文字(碰巧只有一個字)。 它們在 C++ 裡是兩種不同的東西,這一點以後會一直遇到。

三、三個一起印

int main() {
    int age = 16;
    double height = 1.72;
    char grade = 'A';
    cout << age << endl;
    cout << height << endl;
    cout << grade << endl;
    return 0;
}

執行:

16
1.72
A

切到積木那邊看一眼——三個「宣告」積木疊在一起, 每一塊的下拉選單裡就是 int / double / char型態不是你背下來的規矩,它是積木上一個看得見的格子。

完成的樣子

int main() {
    int age = 16;
    double height = 1.72;
    char grade = 'A';
    cout << age << endl;
    cout << height << endl;
    cout << grade << endl;
    return 0;
}

換你了

height 改成 int 型態,執行看看印出什麼。

(會印 1。想一下為什麼——int 不是四捨五入,是直接把小數點後面丟掉。)

這一課你做了什麼

如果卡住了

你看到 多半是因為
印出來是 age 三個字 加到引號了。變數名字不要引號
身高印出 1 型態寫成 int 了。小數要用 double
'A' 那行報錯 用了雙引號。單一字元要用單引號 '
說某個名字沒宣告過 名字打錯字了——Ageage 是兩個不同的名字
在編輯器打開這一課 →