小小熊學C++(故事版)第二章神奇的盒子

前情大概:在前面的故事裡,奧卡、朱迪和本三個小夥伴遇險落入怪島,救了機器人小艾。為了能夠回家,他們決定和小艾一起去尋找寶藏。在小艾的幫助下,他們順利地完成了第一個C++程序,打開了藏寶圖。

“往這裡走!”本大聲嚷嚷著走在隊伍的最前面,“地圖裡顯示這邊有一條路啊。”

“這裡的草木好深呀,也不知道那裡面有什麼怪物?”朱迪有點膽怯的說。

“別怕,如果有怪物跳出來,我就打倒它!”本揮舞著手裡的樹枝,給朱迪打氣。

“是啊,別擔心,珠珠,你走在隊伍的中間好啦!”奧本也安慰朱迪,“快看,前面好像有什麼東西!”

在隊伍的正前面,出現了一道石門,剛好攔住了隊伍的去路。大家走到門前,近距離觀察了下石門。這道門很高很厚實,剛好把道路截斷,想爬過去是不可能了,那該怎麼辦呢?

正在這個時候,本無意中觸摸了下石門,瞬間,石門發出紅色的光芒,光芒在門前凝聚,顯示出了一排排奇怪的盒子,每個盒子上面似乎都貼著一張標籤,寫著一些什麼字符和數字。接著,一個聲音響起來:“探寶者,如果想通過這裡,就必須完成下面的測試,把合適的數字放入指定的盒子!都答對了,才可以通過!”接著一些紅色的字符和數字從門裡蹦了出來,落在盒子旁邊。

大家看了看這些數字和字符,有99、3.14和’a’,又看了看盒子,盒子上寫著int、float、char、bool,那麼應該怎麼放呢?孩子們為難了。

“這個很簡單!”小艾看了看,笑著說,“這是在考我們C++語言的數據類型呢,像這樣就可以。”說著,小艾用手指點中了一個數字99,然後把它拖動到寫著int字樣的盒子裡去,突然,紅光隱去,盒子表面顯現出一片柔和的綠光,有個聲音響起來:“回答正確,通過!”

“看,很簡單吧!” 小艾笑著說,“int就是整型數據類型,這裡是整數的只有99這個數字。你們再試著把其它兩個也放進盒子裡吧,那剩下的三個盒子分別是:float,帶小數點的浮點數;char,一個字符;bool,布爾類型,一般放的是true(真)或false(假)。”

奧卡說,“我也明白了,我來試試!”

說著,奧卡拿起了3.14這個數字,把它放進了寫著float字樣的盒子。一片柔和的綠光閃過,那個聲音響起來:“回答正確,通過!”

“我也試試!”朱迪拿起了’a’這個字符,把它放進了寫著char字樣的盒子。一片柔和的綠光閃過,那個聲音再次響起來:“回答正確,通過!”

“咦,這個bool的盒子可以放什麼東西呢?”本奇怪地問。

“哦,這個bool類型的盒子能放的東西比較特殊。”小艾說,“它可以放true或false也就是真和假,也可以放非0值或0,今後我會細細地講給你們聽。”

當所有的盒子變成綠色之後,哪個聲音又響起來:“接下來請完成計算問題,在回答問題之前,請輸入答題者的姓名,只有計算問題回答正確的人才可以通過這裡!”

這時,門前的空中出現了一個佈滿字符的畫面,一段程序出現在畫面裡:(參考答案2-1)

小小熊學C++(故事版)第二章神奇的盒子

本撓了撓頭,疑惑地說:“奇怪呀,這裡的name是什麼東西?cin又是幹什麼用的呢?”

“哦,這段程序裡的name是一個變量的名字,變量是相對於常量來說的,比如你們的名字,像‘奧卡’就是個常量,還有99、3.14等等這些數字都是常量,它們的值在程序運行過程中是不變化的。而這裡的name就是個變量,也就是說它的值在程序中是允許改變的!你們可以把變量name理解成一個盒子,它裡面裝了一些東西,盒子上的標籤就是name這個詞,在需要的時候我們可以更換盒子裡的東西,明白了嗎?”小艾解釋說。

“噢,原來是這樣。那麼,如果我想輸入我的英文名字ben,這段程序該怎麼寫呢?”本問小艾。

“很簡單呀,定義個變量name就可以使用它了,像這樣。”說著,小艾在空白處熟練地輸入了以下的句子:

小小熊學C++(故事版)第二章神奇的盒子

“喏,這就是C++中變量定義的語法。總的來說格式就是:數據類型 變量名;”

“那麼name後面為什麼要加上一對方括號[10],裡面還有個數字10,這是幹什麼用的呢?”奧卡問。

“這個方括號[]的寫法,叫做數組,以後我再慢慢講給你們聽。你們現在只要知道它表示一下子創造了10個char型的小盒子就行了。”小艾說,“至於為什麼要創建10個小盒子,道理很簡單,本,說說看,你的英文名字有幾個字母組成啊?”

“我的英文名是Ben,有三個字母組成啊。”本回答說。

“很好!我們都已經知道了,一個字母可以存放在一個char型的盒子裡,可是ben有三個字母啊,存不下怎麼辦?只好多定義幾個盒子啦,就是這麼回事。而且要注意,盒子的數量不能少於你們名字裡字符的個數喲,否則就存不下了!所以我就多定義了幾個。”小艾說。

“哦,原來如此。”大家點點頭,“那cin又是做什麼的呢?”

“在C++裡,cin就是Console Input的縮寫,以前我們使用的cout,其實就是Console Output的縮寫,翻譯過來就是‘控制檯輸入’與‘控制檯輸出’的意思,它們一個可以把你們的名字輸入到程序裡存放起來,另外一個可以把程序裡指定的內容輸出顯示出來。”小艾解釋說,“注意,使用時它們的箭頭方向是不一樣的喲!cout<>箭頭指向要輸入的變量,就像是把什麼東西注入到後面的變量裡。”(如圖2-1所示)

小小熊學C++(故事版)第二章神奇的盒子

小艾接著說:“可是,如果定義數組的話,在書寫的時候還是有些繁瑣,我還有更好的方法可以實現輸入你們的姓名。”

“是嗎?小艾,快點給我們做做看。”小夥伴們喊道。

“別急,很簡單,這樣就可以了。”說著,小艾在原來的空線上重新輸入了下面的代碼:

小小熊學C++(故事版)第二章神奇的盒子

然後點擊了綠色的運行按鈕,這時屏幕上顯示:

請輸入您的英文名:

小小熊學C++(故事版)第二章神奇的盒子

奧卡喊道:“我來試試。”說著,奧卡在屏幕提示文字的下方輸入了自己的英文名oscar,點擊了下回車鍵(Enter),這時在屏幕上顯示瞭如下的結果:

奧卡喊道:“我來試試。”說著,奧卡在屏幕提示文字的下方輸入了自己的英文名oscar,點擊了下回車鍵(Enter),這時在屏幕上顯示瞭如下的結果:

小小熊學C++(故事版)第二章神奇的盒子

“哦也,成功啦!”大家都很高興。

“小艾,這個string類型,又是什麼意思呢?”奧卡問。

“哦,這個string是字符串類型的意思,它可以包含多個字符,比如你們的姓名Ben、Oscar或Judi,都多於一個字符,用字符數組表示不方便,這時候就可以考慮使用字符串類型。有時候,同樣的功能可能有不同的解決方法喲,一定要多思考,多嘗試才行。”

那個聲音又再響起:“最終測試:請輸入你們所有人的名字,再輸出。格式如下:”

小小熊學C++(故事版)第二章神奇的盒子

朱迪觀察了下輸出信息說:“因為最後一行需要輸出三個人名,看來定義一個變量是不夠用了。”

“嗯,那我們就定義三個變量!”奧卡說。

奧卡在屏幕上輸入下面的代碼:(另有參考答案2-2)

小小熊學C++(故事版)第二章神奇的盒子

運行後,聲音響起:“恭喜你們,最終測試完成,你們可以通過了!”門縫一片綠光閃過,大門緩緩打開。

“終於完成嘍!”小夥伴們歡呼雀躍。

故事後記:

1)string類型來自哪個庫?

2)、std名稱空間有什麼區別?

//------------------------------------

(參考答案2-1)其它答案:

小小熊學C++(故事版)第二章神奇的盒子

//------------------------------------小道消息:針對初學C++的新同學,熊爸打算製作個教學視頻,幫助大家快速入門,請密切關注【百家號:熊爸講編程】


分享到:


相關文章: