简介:欢迎来到逻辑思维的世界!

你有没有试过站在十字路口,苦恼该走哪一条路?或者你需要决定是多睡五分钟,还是起床准备上学?在计算机科学中,我们称之为逻辑思维 (Thinking Logically)

电脑虽然运算速度惊人,但它们其实并不“聪明”。它们无法“感觉”哪一个选择才是正确的,因此需要我们提供一套清晰明确的规则。在这一章中,我们将学习如何精确地辨识电脑何时需要进行选择、它如何运用逻辑做出决定,以及这些决定如何改变程序运行的“路径”。别担心这听起来有点抽象,一旦你掌握了当中的规律,这就像跟着食谱做菜一样简单!

1. 辨识决策点 (Decision Points)

逻辑思维的第一步是找出哪里需要进行决策。在程序中,决策点就像是“路叉口”。根据问题答案的不同,程序会执行不同的操作。

决策点通常出现在程序遇到不确定状态时。例如,在游戏中,程序在检查分数之前,并不知道玩家是否已经获胜。

现实生活类比:想象一下电影院的自动售票机,它需要做出一个决定:“顾客是否未满 18 岁?”
如果是 YES (是),则收取儿童票价。
如果是 NO (否),则收取成人票价。

程序中常见的决策点:
• 登入时检查密码是否正确。
• 决定玩家是否有足够的“魔力值”(mana) 来施展法术。
• 保安系统检查传感器是否侦测到移动。

快速回顾:决策点是指解决方案中,程序路径根据某个条件分岔成两条或多条路线的任何时刻。

2. 确定逻辑条件 (Logical Conditions)

现在我们知道决策在何处发生,接下来我们需要知道电脑如何做出这些决定。这正是透过逻辑条件来完成的。

条件是一个结果为 TRUE (真)FALSE (假) 的陈述句(这被称为布林逻辑 (Boolean Logic))。电脑会评估这个条件,而评估结果决定了程序会走哪一条路。

逻辑工具:比较运算符 (Comparison Operators)

为了建立这些条件,我们会使用简单的数学符号:
等于: \( == \)
不等于: \( != \)
大于: \( > \)
小于: \( < \)
大于或等于: \( >= \)
小于或等于: \( <= \)

范例:如果我们正在为恒温器设计程序,条件可能是: \( current\_temp < target\_temp \)。如果结果为 TRUE,加热器就会启动!

记忆小撇步:把逻辑条件想象成一个“守门人”。守门人会问一个“是/否”的问题。只有当答案是“是”(True) 时,你才能通过大门。

常见错误:千万别搞混赋值运算符 (\( = \)) 和比较运算符 (\( == \))。使用 \( = \) 来设定一个值(例如 \( x = 5 \)),而使用 \( == \) 来检查两者是否相等。

3. 决策如何影响程序流程 (Program Flow)

程序的“流程”是指执行指令的顺序。当我们加入决策后,就不再只是单纯的顺序结构 (Sequence)(一行接一行执行),而是开始使用分支结构 (Branching)(也称为选择结构 Selection)。

分支结构允许程序跳过某些与当前情况无关的代码区块。如果“用户是管理员”的条件为 FALSE,程序就会完全略过允许删除用户的代码。这能让程序更有效率且更安全。

视觉化流程

我们经常使用流程图来观察运作方式。流程图中的菱形代表决策点。从菱形会延伸出两支箭头:一支代表“True”,另一支代表“False”。

嵌套决策 (Nested Decisions) 的影响:
有时候,一个决策会导向另一个决策,这称为“嵌套”。
范例:
1. 用户是否已登入?(如果是,则进行第 2 步)
2. 用户是否为管理员?(如果是,则显示删除按钮)

你知道吗?这种逻辑流程正是让电子游戏中的“AI”看起来很聪明的原因。敌人角色并不是真的在“思考”;它只是在遵循一个庞大的逻辑决策树:“我看得到玩家吗? -> 如果是,玩家在射程内吗? -> 如果是,攻击!”

总结:重点回顾

1. 决策点:这是代码中程序必须做出路径选择的位置。寻找“如果”(if) 的情境来辨识它们。

2. 逻辑条件:这是用来做出选择的规则。它们的运算结果必须是布林值(True 或 False)。

3. 程序流程:决策会改变程序的路径。分支结构确保电脑只执行当前情况下必要的代码。

给你的鼓励:逻辑就像拼图。一旦你确认了“如果”以及“那么”的逻辑,剩下的程序结构就会自然而然地连接起来。加油,你一定可以做到的!