Semorphe

印出一句話

讓電腦說出你要它說的話。 · ⏱ 約 20 分鐘

這一課會用到的操作

看不清楚?每一段都會一直重播。

從工具箱拖一顆積木出來——點開「輸入/輸出」分類,把「輸出」那顆積木拖進畫布,左邊的程式碼跟著多一行
切成「對照」,一次看到兩邊——點狀態列右邊的版面,選「對照」,畫面變成程式碼與積木兩欄
按執行,看主控台——按右上角的執行,底下的主控台印出程式的輸出

你會學到三件事

  1. 怎麼叫電腦印一句話出來
  2. 引號為什麼那麼重要
  3. 同一個程式,積木和程式碼是同一件事

開始之前

打開編輯器。積木那一邊是空的——空的不代表壞掉,代表你還沒叫它做事。

⚠️ 而程式碼那一邊已經有幾行了:

using namespace std;
int main() {
    return 0;
}

那幾行不是你要寫的東西,是每一支 C++ 程式都長那樣,第 5 課會把它們拆開。 在那之前,積木這邊先幫你收起來,你只要管自己放的東西。

🟢 先把編輯器打開,跟著下面一起做。 讀完再打開的話,下面每一段你都得先記起來——而那不是這個工具要你做的事。

到編輯器打開這一課:跟著做

一、叫它說話

從左邊的「輸入/輸出」把「印出」那一塊拖進來, 中間那格打上 Hello!。程式碼那邊會變成:

1    cout << "Hello!" << endl;
"Hello!"換行印出1

拆開來看:

這一段 意思
cout 「印出去」——console output
<< 箭頭指著 cout,表示「往那邊送」
"Hello!" 要送過去的東西。有引號 = 一段文字,原封不動印出來
endl end line,換行。少了它,下一句會黏在同一行
; 一句話說完了

按「執行」,主控台會出現:

Hello!

⚠️ 引號很重要

"Hello!" 有引號,所以電腦原封不動印出 Hello!。 如果你寫成 cout << Hello! << endl;(沒引號),電腦會以為 Hello 是一個你先前取好的名字,然後找不到它,於是報錯。

有引號 = 一段文字;沒引號 = 一個名字。 這條規則整堂課都用得到。

二、兩邊是同一件事

試著把 Hello! 那格的字改掉,改成你的名字。 再看一眼程式碼——它跟著變了。

反過來也成立:在程式碼那邊把字改回去,積木那一格也會跟著變。

積木和程式碼不是兩份東西,是同一份東西的兩種畫法。 你改哪一邊都可以。

完成的樣子

這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。

1#include <iostream>2using namespace std;3int main() {4    cout << "Hello!" << endl;5    return 0;6}
"Hello!"換行印出4

⚠️ 積木上你只會看到一塊——上面那幾行是第 5 課的事。

它們是同一個東西

點一下畫面上那塊「印出」積木——程式碼裡 cout 那一行會亮起來。 再把游標移到 return 0;,換成「回傳」那塊亮。

⚠️ 你不是在學兩種東西。你在看同一支程式的兩種寫法, 而它們永遠是同步的——改哪一邊都算數。

上面那張「同一支程式,兩種看法」就是這件事: 程式碼的每一行都有一個號碼,而那個號碼就印在對應的積木上。

換你了

讓它印出兩行:

Hello!
我是 <你的名字>

提示:第一行你已經會了,第二行是一模一樣的事再做一次。

🟢 不用再拖一顆——在那塊積木上按右鍵,選「複製」,就多一塊一樣的。 接著只要改中間那格的字。(在程式碼那一邊,複製貼上那一行也是一樣的事。)

到編輯器做這一題:練習:再印一行

做一個

用 cout 印出一張名片:一排星號、你的名字、一句你想說的話、再一排星號。

🔴 這一題沒有標準答案,也沒有裁判——每個人印出來的都不一樣,而那正是重點。 做完跟旁邊的人看一下彼此的,你會發現同一件事有好幾種排法。

到編輯器做這一題:做一個:你的名片

這個工具還會這樣跟你說話

⚠️ 下面這幾樣你剛才可能已經遇到了。講一次就好,後面的課不會再提 ——想不起來的時候回來看這一格。

你會看到 那是在說
積木上一個琥珀色的虛線框 這一塊這次沒有被跑到——是故意的嗎?
按執行前先問你「猜猜看」 猜完再揭曉——⚠️ 猜錯比猜對值錢,那是你發現自己想錯的地方
主控台說「跟這一課要的不一樣」+兩欄比對 左邊是你印的,右邊是要的
題目那一格的「2/3」 這一課有三題,你過了兩題

🟢 而沒有分數、沒有等級、沒有排名。這個工具只會說那件事怎麼樣了, 不會說你怎麼樣。

這一課你做了什麼

如果卡住了

你看到 多半是因為
主控台是空的 積木沒接上,或那一行跑到了不會被執行的地方(第 5 課會講)
說 Hello 找不到 引號漏了。文字一定要用 " 包起來
兩句話黏在同一行 少了 endl
紅紅的錯誤,指著某一行 行尾的分號 ; 漏了
在編輯器打開這一課 →