讀進來
讓程式問使用者要資料,而不是自己寫死。 · ⏱ 約 20 分鐘
這一課會用到的操作
看不清楚?每一段都會一直重播。
點齒輪,關掉「初始值」——點宣告積木左上角的齒輪,浮出的小視窗裡把「初始值」的勾點掉,積木上的等號消失,程式碼那一邊從 int n = 0; 變成 int n;
你會學到三件事
- 怎麼讓程式等使用者打字(
cin)
- 為什麼
cin 的箭頭方向跟 cout 相反
- 一個變數可以先取名字、之後才裝東西
開始之前
第 2 課的程式是這樣:
int age = 16;
16 還是寫死的。你想換一個數字,還是得回去改程式。
這一課要讓使用者決定那個數字。
🟢 先把編輯器打開,跟著下面一起做:跟著做
一、先留一個空位
到目前為止,取名字和裝東西都寫在同一行。其實可以分開:
這一行的意思是「我要一個叫 n 的位子,裝整數,但現在還沒東西」。
⚠️ 這時候 n 裡面裝的是垃圾——不是 0,是上一個用過這塊記憶體的人
留下來的東西。所以留了空位就要記得填,別急著印它。
🔴 積木那一邊:那顆齒輪
前兩課的宣告積木長這樣:「宣告 int 變數 age = 16」。
而這一課要的是沒有那個「= 16」——所以你得把它關掉:
🎬 這一段有影片——本頁最上面「這一課會用到的操作」那一格,
整個過程會一直重播。看不清楚的話就照著下面三步走:
- 在宣告那顆積木的左上角,找到一顆小小的齒輪,點它一下
- 積木旁邊會浮出一個小視窗,裡面有一顆寫著「參數」的積木,
而它上面那一行是
n 初始值 ✓
- 點那個
✓,把勾取消掉
勾一取消,積木上的 = 和後面那個洞就消失,剩下「宣告 int 變數 n」
——而程式碼那一邊當場從 int n = 0; 變成 int n;。
🟢 兩邊是同一件事:你在積木上關掉一格,程式碼就少一段。
再點一次齒輪、把勾點回去,它就回來了。
積木上看得到的每一格,都是「可以有、也可以沒有」的
——而齒輪就是決定要不要有它的地方。
⚠️ 而旁邊那對 + - 是另一件事:它們加的是變數個數,
不是初始值。按一下 +,同一行就變成 int n, m;——兩個名字、一次宣告。
🟢 兩顆按鈕,兩個問題:
⚙️ 這一格【要不要有】 初始值、else、步進…
+- 這一格【要幾個】 幾個變數、印幾樣東西、幾個引數
二、把使用者打的東西讀進來
在 int n; 後面加一行 cin >> n;,再把後面那一行印出來:
1int main() {2 int n;3 cin >> n;4 cout << "你打的是 " << n << endl;5 return 0;6}
cin >> n; ——console input,讀進來。
注意箭頭的方向:
cout << n 資料從 n 【流出去】給螢幕
cin >> n 資料從鍵盤 【流進來】裝進 n
箭頭永遠指著資料要去的地方。 記這一件事就好,不用分別背兩個。
三、跑跑看
按「執行」,程式會停住,主控台出現一個等你打字的地方。
打 7,按 Enter:
你打的是 7
再跑一次,打別的數字——程式一個字都沒改,結果不一樣了。
這就是輸入的意義:程式描述的是「怎麼做」,資料是使用者給的。
⚠️ 另外注意 "你打的是 " 最後有一個空格。
沒有那個空格,印出來會是 你打的是7,擠在一起。
引號裡面的空格是算數的。
完成的樣子
這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。
1#include <iostream>2using namespace std;3int main() {4 int n;5 cin >> n;6 cout << "你打的是 " << n << endl;7 return 0;8}
把積木打散,自己排回去:排回去:把剛才那支程式的積木排好
換你了
讀進兩個數字,然後把它們都印出來:
第一個是 3
第二個是 8
提示:cin >> a >> b; 可以一次讀兩個(中間用空白或 Enter 分開),
你也可以老老實實寫兩行 cin。兩種都對。
到編輯器做這一題:練習:讀進兩個數字
做一個
讀進三個數字,倒著印出來(各一行)。
裁判餵 1 2 3 進去,印出來要長這樣:
3
2
1
🔴 這一題不用算任何東西——它考的是「三個變數各自記住一個值」。
⚠️ 想一下:如果只用一個變數,做得到嗎?為什麼?
到編輯器做這一題:做一個:倒著印出三個數字
這一課你做了什麼
- 你宣告了一個還沒裝東西的變數
- 你用
cin >> n; 讓程式停下來等使用者
- 你知道了箭頭方向指著資料要去的地方
如果卡住了
| 你看到 |
多半是因為 |
| 程式沒停就跑完了 |
cin 那行漏了,或箭頭寫成 << 了 |
| 印出一個很怪的大數字 |
忘了 cin,印的是還沒填過的垃圾值 |
| 打了字沒反應 |
要按 Enter,程式才知道你打完了 |
| 文字和數字擠在一起 |
引號裡面少一個空格 |
在編輯器打開這一課 →