字下げ缩进
在术语表中打开 字下げ缩进(字下げ)是在行首加入空白,让处理块和嵌套层次在外观上一目了然的写法。
条件分支或循环内部的行向右移一级,同一层的行则让行首位置对齐。在多数语言中,改变缩进不影响处理结果,但也有像 Python 这样用缩进决定代码块范围的语言。无论哪种情况,代码块的分界都一目了然,读错的情况也会减少。
类比就像写提纲时把小项目稍微往右缩进写在大项目下面,一看就知道哪个小项目属于哪个大项目。
记法日语写作「字を下げる」,意思是把行首的字往右推下去,这个动作直接成了名称。
缩进(字下げ)是在行首加入空白,让处理块和嵌套层次在外观上一目了然的写法。
条件分支或循环内部的行向右移一级,同一层的行则让行首位置对齐。在多数语言中,改变缩进不影响处理结果,但也有像 Python 这样用缩进决定代码块范围的语言。无论哪种情况,代码块的分界都一目了然,读错的情况也会减少。
类比就像写提纲时把小项目稍微往右缩进写在大项目下面,一看就知道哪个小项目属于哪个大项目。
记法日语写作「字を下げる」,意思是把行首的字往右推下去,这个动作直接成了名称。
indentation(インデンテーション)是缩进的英文名称,所指内容与缩进相同。
加在行首的空白本身或其宽度称为 indent(缩进量),用空格或制表符做出一级的宽度。如果整个程序中一级的宽度不统一,代码块之间的界线反而更难看清。
记法英语的 indent 指文字从纸边向内退进去形成的「凹进处」。
考点
嵌套深度(ネストの深さ)表示在条件分支或循环里面再放入条件分支或循环的嵌套(nest)重叠了几层。
在那个条件分支中再放 1 个条件分支就成了 3 层,越靠内侧的行,越难追踪它在什么条件下执行。
例如,循环中有条件分支,其中又有一个条件分支,嵌套就是 3 层。层数越深,要确认某一行在什么条件下执行,就得往回追溯越多的层,容易读错或改错。对于变深的部分,可以把它拆出来作为单独的处理等,设法保持较浅的层数。
类比就像套娃式的盒子,盒中有盒、盒中再有盒,越里面的盒子,要取出来就得多开几层。
记法nest 在英语中是「鸟巢」。就像蛋安放在巢里一样,处理里面安放着处理。
考点
| 比较点 | 缩进 | 嵌套深度 |
|---|---|---|
| 关键表示的内容 | 由行首空白形成的外观层次 | 嵌套重叠的层数 |
| 性质 | 写法(排版)上的规范 | 处理组织方式(结构)的性质 |
| 改变的方法 | 改变空白宽度 | 拆出处理等,改变组织方式 |
命名规则(命名規則)是事先定好给变量、函数等起名方式的约定。
| 规则示例 | 名称示例 |
|---|---|
| 用大写字母标出单词分界 | orderCount |
| 用下划线标出单词分界 | order_count |
| 常量全部用大写字母书写 | TAX_RATE |
例如,规定使用能看出作用的英文单词、用大写字母或下划线标出单词分界、常量全部大写等。命名规则通常与缩进宽度等规定一起,作为统一程序写法的编码规范的一部分来制定。命名方式统一后,编写者以外的人也能从名称推测出它的作用。
类比就像把文件柜里的文件名统一成「年月_客户_内容」的顺序,不管谁来找都能猜到里面是什么。
考点
模块划分(モジュール分割)是把大型程序按功能拆成一个个部件(模块),再组装起来的方法。
让 1 个模块只承担 1 项职责,模块之间先定好要传递的信息再组合起来。即使需要修改,影响范围也容易限制在该模块内部,做好的部件还能在别的程序中复用。另外,模块一词也用来指源代码在编译、链接阶段产生的程序单位。
类比就像用板材、桌腿、抽屉这些部件组装家具,坏了的抽屉可以单独换掉。
记法module 指「规格统一、可以互换的单位」,就像宇宙飞船的居住舱模块,是可以替换、追加的部件。
考点
主例程(メインルーチン)是程序运行时最先启动、统筹整个处理流程的核心处理。
处理返回后,主例程进入下一步。
细节的个别处理不由自己编写,而是调用下层处理来完成,处理返回后再进入下一步。因此,只要读主例程,就能把握整个程序按什么顺序做什么。
类比就像工地的现场负责人决定作业顺序,把各道工序交给各自的师傅,收到完工报告后再推进下一道工序。
子例程(サブルーチン)是把特定的一段处理归为一体,使其他处理能够调用它的部件。
被调用后执行处理,结束后回到调用方接着往下执行。同样的处理不必在多处重复编写,只改 1 处,所有调用它的地方都会反映出来。根据语言不同,它也称为函数或过程,子例程还可以再调用别的子例程。
类比就像菜谱里写着「熬高汤的方法见另页」,需要时随时翻到那一页去看。
记法sub 是表示「下面的、从属的」的前缀,与 submarine(在水面下行进的船)中的 sub 相同。
考点
| 比较点 | 主例程 | 子例程 |
|---|---|---|
| 职责 | 统筹整体流程 | 承担特定的一段处理 |
| 关键开始运行的契机 | 程序开始运行 | 来自其他处理的调用 |
| 处理之后 | 走向程序结束 | 回到调用方接着执行 |
从本单元的过去问中选 4 题
开始做确认题