欢迎来到程序设计的世界!

你有没有想过你最爱的应用程序是如何「思考」的?这并非魔法,一切都归功于程序结构(Constructs)。你可以把程序结构想象成编写代码的积木。就像食谱有步骤、配料和决策(例如「烤 20 分钟或烤到金黄色为止」),程序也是利用这些逻辑结构来解决问题的。

在本章中,我们将学习如何识别这些积木,并运用它们来编写出令人惊叹的程序。如果一开始觉得内容很多,不用担心;一旦你掌握了当中的规律,编程就会像看地图一样自然!

1. 基础配料:变量与常量

在我们做任何事之前,需要先储存数据。我们主要使用两种类型的容器:

变量(Variables):这些是程序执行期间,数值可以改变的容器。想象一下电子游戏中的「分数」框;它从 0 开始,然后不断增加。
常量(Constants):这些是数值保持不变的容器。试想 \( \pi \) (Pi) 的数值,或是游戏中的「重力」设定。我们使用常量是为了让代码更易读,并防止意外的变动。

初始化与赋值

初始化(Initialisation):这是你第一次为变量赋予数值。就像买了一个新文件夹,并放入第一张纸一样。
赋值(Assignment):这是你设定(或更改)变量数值的过程。在许多程序语言中,我们使用 \( = \) 符号来进行赋值。例如: \( Score = Score + 10 \)。

重点复习:
变量:可以改变(例如:玩家速度)。
常量:保持不变(例如:最大生命值)。
赋值:将数值存入容器中。

2. 执行顺序:指令序列

序列(Sequence)是最基本的程序结构。它意味着计算机会从上到下,一个接一个地执行指令。顺序很重要!

比喻:想想你的晨间日常。如果你在穿袜子之前先穿鞋子,那肯定会很麻烦!编程也是一样的道理。

3. 作出抉择:选择结构

有时候,程序需要在不同的路径之间做出选择。我们称之为选择(Selection)。这通常涉及 IF 语句。

现实生活例子:
如果(IF)正在下雨,那么(THEN)就带伞。否则(ELSE),就戴太阳眼镜。

在编程中,我们使用关系运算符来做出这些决定:
• \( == \)(等于)
• \( != \)(不等于)
• \( > \)(大于)
• \( < \)(小于)

常见错误:许多学生在想要表达「是否等于」时,错误地使用了单个 \( = \) 符号。请记住: \( = \) 是用来赋值的,而 \( == \) 才是用来比较两个数值!

4. 重复执行:重复与迭代

计算机非常擅长一遍又一遍地执行枯燥的任务而不会感到疲倦。我们使用循环(Loops)来处理这些任务。你需要认识三种主要的类型:

计数控制循环(重复)

当你明确知道想要重复执行多少次时使用。
例子:「拍手 5 次。」
在代码中,这通常表现为 FOR 循环。

条件控制循环(重复)

当你想要持续执行,直到某个条件改变为止时使用。你可能不确定需要执行多久。
例子:「持续奔跑直到抵达终点线。」
在代码中,这通常表现为 WHILE 循环。

数据结构的迭代

这是一种特殊的循环,会检查集合(例如列表或数组)中的每一个项目
例子:「检查花名册上的每一位学生名字。」

你知道吗?使用循环可以让你的代码简洁许多。与其写 100 次「打印 'Hello'」,你只需在循环中写一次即可!

5. 与计算机对话:输入与输出

如果程序无法与我们沟通,它的用途就不大了!
输入(Input):用户提供给程序的数据(例如输入你的用户名)。
输出(Output):程序显示给用户看的信息(例如在屏幕上打印「游戏结束」)。

6. 程序小帮手:子程序与参数

随着程序变得庞大,结构会变得混乱。我们使用子程序(Subprograms)(也称为函数或过程)将代码归纳为可重复使用的区块。

比喻:想象你有一个「小小兵」,他非常清楚如何制作三明治。与其每次你肚子饿时都要解释每一个步骤(拿面包、涂牛油、涂果酱),你只需要大喊「制作三明治!」即可。

参数(Parameters):这些是你给予子程序的特定「选项」。对于三明治子程序,参数可能是果酱的口味。「制作三明治(草莓口味)」与「制作三明治(覆盆子口味)」。

7. 编写优质代码:黄金法则

当你编写代码区块或子程序时,目标应为单一入口与单一出口。这意味着代码应该从顶部开始,并在底部结束。尽量避免从循环或子程序的中间「跳出」,这会让你的代码更容易进行调试(修正错误)!

考试重点摘要:
1. 序列:按顺序执行的指令。
2. 选择:IF 语句(做出选择)。
3. 重复:FOR 循环(计数控制)与 WHILE 循环(条件控制)。
4. 变量会改变;常量则不会。
5. 子程序使代码可重复使用且更易于管理。

如果一开始觉得这些概念很困难,别担心!学习这些结构的最佳方式就是尝试亲手编写。从小程序开始,很快地,你就能像堆积木一样,建立出复杂的程序。