就这样,老弟的降生就被我们以友好磋商的方式决定了。多年以后,老弟在问起自己的出生历程时,听到事情的原委后他沉默了半天。
快乐的时光总是太短暂,随着走亲戚热潮逐渐衰退,我今年的收入也进入了尾声。当老妈再次以代为保管的名义从我这里将所有的红包都搜刮一空,这个时候我突然能够体会到老爹每个月发工资那天的心情。
既然不走亲戚了,那就应该愉快地学习知识了。作为一个励志要以编程来改变世界的人,怎么可以停滞不前呢?
「在开始新的课程之前,我们先回顾一下之前讲过的内容……」
老爹上来先将之前的知识回顾了一遍,还不忘让我敲几个例程找找感觉。
当然,他完全是多心了。听说老爹在我这个年纪的时候能够行云流水地背下整本语文书,看电视地时候能够背完整个剧的台词。作为他的女儿,这种天赋技能我怎么可能不继承下来呢?
虽然那些知识我都还清晰的记得,但还是依照老爹的意思过了一遍。
「今天要讲的混沌先民中的if和switch,首先详细介绍一下它们各自的属性。
姓名:if
身份:混沌先民
出身年月:1972年初
技能:else、else if分身
弱点:真爱无敌」
「哈,老爹,这又是个什么鬼?」
看着老爹煞有其事地给我介绍「if」关键字的属性,我感觉脑瓜子有点嗡嗡作响。
「有道是知己知彼,方能百战百胜。所有的混沌先民都是你封神路上的阻碍,只有战胜它们,并且让它们为你所用你才能飞升成神,知道么?」
老爹瞬间被诸葛孔明老先生附身,就差天机扇和那一撮山羊胡子了。
「所以我们今天的背景是『凡媛修仙记』?」
我捂着额头说问道
「接下来的一段时间都是~」
老爹摸了摸下巴并不存在的山羊胡须,脸上露出了睿智的笑容。
「那行吧,请开始你的表演~」
我对老爹做了一个「请」的姿势。
「话说在程序世界诞生初期,那时世界一片混沌,『真假』难分……」
「等等,你这不是盘古开天辟地的神话传说么?」
我忍不住打断了老爹。
「大道殊途同归,都是世界的演化,总会有相似之处嘛……」
老爹笑了笑,丝毫没有感觉到尴尬。
「……」
「这个时候,if就应运而生。它天生就具有辨别真假的能力,于是被其他混沌先民称作逻辑怪。
如果遇到『真』的东西,它就自己处理,如果是『假』if就会拔下一根毫毛变一个分身else来处理。而有时候不需要对『假』进行处理,if也懒得拔毫毛变分身。
但是世界中真真假假,虚实相交。有时候『假』当中可能也有『真』的存在,于是if就花了很大的功夫修出了另一种分身——『else if』,专门用来择出『假』中的『真』。
else if又会用另外一套标准来判断是真还是假,如果是真它处理。else if也很厉害,它可以变一个和自己一样的分身,也可以变else分身。
于是经过if和它的分身们的不懈努力,『真』与『假』被分开,形成了一片清明的世界。后来呀,但凡人们要辨别真假的时候,都会召唤if和它的分身……」
「故事编得还不错,但是有一点我不明白,假中有真是怎么回事?这个世界非假即真,怎么会有假中有真呢?」
我有些疑惑道。
「不错,在同一时刻真和假是互斥存在的,不是真就是假。但是当条件发生了变化,真和假可能会出现变化。为了更好说明,我在这里给你举个例子:魔塔这款游戏你应该还记得吧?」
「记得记得,当时不是一边玩儿一边问你不认识的字么?」
说到魔塔,我还有点怀念。毕竟那款游戏可是我最先接触的几款游戏之一,关键是那个时候玩游戏还没有和金钱挂钩。
「记得就好,比如说这个时候你身上有500个金币,打算到商店里边提升攻击力。结果商店里的老头儿说,如果你有800金币,我给你提升20点攻击。
但是你身上只有500金币,显然条件不成立,为『假』。就在你打算转身离开的时候,那个老头儿又说了,如果你有500个金币,我给你提升10点攻击。这个时候你刚好有500金币,条件就成立了,为『真』,于是你和老头儿痛痛快快地达成了这笔交易。
如果这个过程用if和它的分身来处理的话,就是这样的:
if(金币等于800)
{
攻击力+20
}
else if(金币等于500)
{
攻击力+10
}
else
{
没钱滚蛋
}
对于第一个条件来说是不成立的,为假,所以if不会处理,它会交给自己的分身。因为需要使用其它条件再对金币进行判定,所以要使用if的else if分身,如果再不成立,就让你滚蛋了。
所以要不要使用if的分身,使用哪个分身,取决于要不要对『假』进行处理和有没有另外的条件。」
「听上去有点绕啊……」
我摸着下巴,眉头皱到了一块儿。
「这样啊,看来这次的故事有点失败。嗯,实在想不明白就忘记之前那些,老爹还有Plan B……」
老爹先是一副受挫的模样,随后他眼睛顿时一亮,灵光迸发。
「抄试卷这种事情做过吧?」
「何止做过啊?这些年可没有少做!不然你以为我这支一次性可以写三行字的笔是哪儿来的?」
说着,我将电脑桌抽屉里的法宝——三支绑在一起的笔拿了出来。
「比如说,这次出题比较简单,正常情况下你们班上应该有10个人考满分。结果老师认为应该考满分的人因为粗心大意,都只考了90多分。
老师很生气,就让九十分的人把错了的题抄三遍。用if怎么表达呢?
if(分数大于90分并且不等于100分)
{
把错题抄三遍
}
else
{
什么都不做
}
else就是指的分数小于90分的人,既然什么都不做,就没有必要麻烦else了,于是以上表达可以简化:
if(分数大于90分并且不等于100分)
{
把错题抄三遍
}
结果,你们班上有个考了89分的小朋友幸灾乐祸地跟他考了99分的同桌说还好自己只考了89分,不然也要抄卷子了。
不幸的是,怒气尚未平复的老师听到了这句话,你说接下来会发生什么有趣的事情?」