小小熊学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++的新同学,熊爸打算制作个教学视频,帮助大家快速入门,请密切关注【百家号:熊爸讲编程】


分享到:


相關文章: