敲代码调试的时候,盯着屏幕卡了好久,一直在琢磨else什么意思中文翻译,词典里翻出来一堆释义,可套进代码里总觉得别扭。最开始只记得它能翻译成“其他”,写if判断语句的时候随手敲上,运行出来的结果完全不对,明明条件满足的分支走通了,不满足的情况直接跳过,程序就那样僵在原地。

翻普通英汉词典是最大的误区。词典里else,日常英语里大多翻译成别的、另外的,像someoneelse就是其他人,anythingelse指别的东西。但放到代码语法里面,不能照搬这个意思,硬套中文“别的”,读代码逻辑会乱成一团。

那段时间赶作业,写一个简单的分数判断程序。if里面写分数大于等于60就输出及格,后面直接写else。当时脑子里还在纠结,这个else到底该翻译成啥,随手注释写了“其他”。运行测试,59分的时候程序没反应,反复核对半天,才发现不是单词翻译错,是自己没搞懂它的作用范围。

else只跟紧挨着它的if配对。

后来才反应过来,在编程语境下else中文翻译优先用“否则”。if代表如果,条件成立就执行if内部代码;else就是如果前面if条件不成立,就走这一段。不是泛指所有别的情况,专门承接if判断失败的场景。日常英语场景和编程场景,翻译要分开看,不能混在一块。就像刚才那个分数例子,注释改成否则之后,读代码瞬间顺了,分数低于60,就触发else里面不及格的输出,程序跑起来正常。

还试过把日常释义套进代码阅读,看到else下意识理解成另外,读多层嵌套ifelse的时候逻辑彻底混乱。好几层判断叠在一起,分不清哪个else对应哪一个if,调试的时候花大把时间打印变量,一点点排查分支走向。那时候才分清,单词本身有两套常用翻译,看使用场景切换。普通英文句子,else译作别的、另外;条件判断代码块,译作否则。

同桌写代码更省事,干脆不写中文注释,全靠记if否则else的搭配。但我习惯在代码上加简短注释,要是翻译选错,后面回头看自己写的程序,半天理不清逻辑。有一次隔了一周再打开旧代码,看到注释写的“其他”,愣了半天才想起当初这段判断是干嘛的,白白浪费不少时间。

也碰到过elseif,这个组合不能拆开单独翻译else。elseif连在一起,是“否则如果”,用来增加多段判断分支,不是简单的否则加上如果。一开始拆分理解,以为else单独一段,if又是新判断,写出来的语法直接报错,编译器飘红一大片,折腾好久才改掉写法。

普通英语句子里的else,位置也有讲究,永远放在名词或者不定代词后面,不能放前面。比如whatelse,还有whatotherthings,这两句意思接近,但语序完全不一样,这也是和编程里else最大的区别,代码里else固定放在if代码块结束之后。两种场景,单词一样,用法、语序、中文翻译全都不互通。

手上那段分数程序改完之后,保存关闭编辑器。鼠标点到桌面空白处,不想再继续敲东西。