← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达
← 编程学习中心
📖

Preparation

8 个课程
1
如何学习编程
2
计算机基础
3
键盘初识与基准键位
4
字母与数字基础
5
Shift键魔法
6
编程符号专精
7
功能键与修饰键
8
键盘学习总结与进阶
📚

Basics

22 个课程
1
什么是编程?
2
Hello World - 你的第一个程序
3
变量基础概念 - 给信息贴标签
4
变量赋值和操作 - 变量的高级用法
5
数据类型基础 - 数字和字符串
6
基础运算符 - 数字运算王国
7
布尔类型与比较运算符 - 程序的判断基础
8
条件判断基础 - 让程序学会做决定
9
变量作用域 - 变量的生存范围
10
条件语句进阶 - 复杂判断与嵌套结构
11
逻辑运算符 - 简化复杂条件判断
12
循环语句 - 程序的重复机器
13
循环进阶 - break、continue与循环控制
14
嵌套循环与作用域
15
循环调试实战技巧
16
循环不变量 - 理解循环的数学规律
17
数组基础 - 数据的收纳盒
18
数组操作方法 - 添加、删除和管理
19
数组高级 - 探索数组的强大功能
20
引用概念 - 变量的不同行为
21
函数基础 - 解决重复代码的秘密武器
22
函数实践与应用 - 巩固基础,实战应用
🚀

Intermediate

11 个课程
1
从控制台到画布 - p5.js初体验
2
图形绘制工具箱 - 基础图形函数
3
让世界多彩 - 颜色系统详解
4
文字的艺术 - 文本绘制与样式
5
球体动起来 - 动画基础入门
6
球体的交互魔法 - 鼠标与条件判断
7
面向对象编程 - Class类与实例
8
球的家族 - 循环与数组应用
9
球的个性 - 函数封装与参数化
10
球的变身 - 形状模式与高级绘制
11
球的世界 - 综合创作项目
🎯

Advanced

6 个课程
1
对象类型
2
对象类型应用
3
自定义类型
4
函数进阶 - 箭头函数与高级编程技巧
5
内置方法 - 字符串与数组的魔法工具
6
Switch语句与字符串模板 - 更优雅的代码表达

条件判断基础 - 让程序学会做决定

现在我们学会了布尔类型,接下来学习如何让程序根据布尔值做出不同的决定。这就是条件语句!

什么是条件判断?

🚦 生活类比:交通灯系统

想象你站在一个交通灯前:

  • 绿灯:通行 🚶
  • 红灯:停止 ✋

你会根据不同的灯的颜色做出不同的决定,这就是条件判断!

加载代码编辑器...

if 语句的结构与写法

if (条件) {
  // 可以是一行或多行代码
  console.log("第一行");
  console.log("第二行");
}

每个部分的详细解释

1. if 关键字

  • 读作:"如果"
  • 作用:告诉计算机:"我要开始一个条件判断"
  • 规则:必须小写,不能写成 If 或 IF

2. () 条件括号

  • 作用:把条件包围起来,让计算机知道条件在哪里
  • 规则:必须成对出现,左括号 ( 和右括号 )

3. 条件 - 需要判断的事情

  • 作用:判断某件事是 true(真)还是 false(假)
  • 可以理解为:放在括号里的任何能够得出"是"或"不是"答案的问题
  • 例子:score >= 60(分数够不够?)、hasKey(有没有钥匙?)、level > 5(等级够高吗?)

4. {} 代码块

  • 作用:把要执行的代码包围起来
  • 重要:计算机先判断条件的结果,结果是 true 就执行,结果是 false 就不执行
  • 规则:必须成对出现,左大括号 { 和右大括号 }

记住:任何条件最终的结果只有两种可能 - true(是)或 false(不是)。程序根据这个结果决定是否执行大括号里的代码。

✅ 完整的 if 语句示例

加载代码编辑器...

逐步分析这个示例:

  • if - 关键字,表示"如果"
  • ( - 开始条件
  • score >= passScore - 条件:75 >= 60,结果为 true
  • ) - 结束条件
  • { - 开始代码块
  • console.log("及格了"); - 要执行的代码(因为条件为 true)
  • } - 结束代码块

条件的各种形式

记住一个重要原则:只要最终能得出"是"或"不是"(true/false)的答案,任何写法都可以放在 if 的条件里。以下是一些常见的条件形式:

1. 直接使用布尔值

加载代码编辑器...

2. 使用布尔变量

布尔变量可以直接用在条件中,但有一些重要的比较方式需要了解:

基本的布尔变量使用

加载代码编辑器...

简化布尔比较

1. === true 比较可以简化

加载代码编辑器...

简化原理:通过看两种方式在 isVictory 为 true/false 情况下是否一样:

isVictory 的值isVictory === trueisVictory等价吗?
truetruetrue✅ 等价
falsefalsefalse✅ 等价

从表格可以看出:isVictory 完全等价于 isVictory === true

这就是为什么可以用直接使用变量名来简化 === true 比较的原因。

3. 数字比较运算

加载代码编辑器...

4. 字符串比较

加载代码编辑器...

记住:这些只是例子!任何能够最终产生 true 或 false 结果的表达式都可以放在 if 的条件中。

if-else 语句的完整语法

当你需要在条件为真时做某些事,在条件为假时做另一些事时,就需要用到 if-else 语句。

if-else 语法结构

if (条件) {
  // 当条件为 true 时执行的代码
} else {
  // 当条件为 false 时执行的代码
}

语法组成部分

  • if - 关键字:"如果"
  • else - 关键字:"否则"
  • 执行逻辑:
    • 条件为 true → 执行 if 后面的代码
    • 条件为 false → 执行 else 后面的代码

语法规则

  • if-else 是一个完整的结构,必须成对出现
  • else 不能单独使用,必须与 if 配合
  • 就像中文的"如果...否则...",缺一不可

完整示例

加载代码编辑器...

两种选择的生活例子

让我们用交通灯的例子来展示 if-else 的用法:

加载代码编辑器...

游戏中的应用:

加载代码编辑器...

不带{}的条件语句

语法规则 如果 if 语句后面只有一行代码,可以去掉大括号 {}:

加载代码编辑器...

常见问题

这种写法很容易产生意想不到的结果:

加载代码编辑器...

问题分析 从上面的例子可以看到:

  • 只有第一行 console.log("有钥匙") 属于 if 语句
  • 第二行 console.log("可以开门了") 不受条件控制,总是会执行

重要提醒: 虽然两个 console.log 语句在视觉上是对齐的,但从代码逻辑的角度来看,第二行代码并不属于 if 语句!

没有大括号时,if 语句只控制紧跟在后面的第一行代码,后续的代码都是独立执行的,不管它们在视觉上看起来多么"对齐"。

这就是为什么我们建议总是使用大括号,这样可以避免视觉误导。

我们的建议

为了避免所有这些问题,我们课程中总是使用大括号 {},无论是一行还是多行代码。这样既安全又清晰!

💡 遇到错误时怎么办

当你写代码时,可能会遇到一些错误。这是完全正常的!

处理错误的方法

  1. 仔细阅读错误信息:TypeScript 会告诉你哪里出错了
  2. 对照正确结构:比较你的代码和 if (条件) { 代码 } 的结构
  3. 检查符号:确保括号、大括号都成对出现

记住:每个程序员都是在不断修正错误中成长的!

第一次理解编程语法

通过前面的学习和实践,你现在真正体验了编程语法的概念!

什么是编程语法?

刚才你遇到的错误(缺少括号、括号不匹配等)都是违反编程语法规则的错误。

编程语法就像中文语法的规则,但更加严格:

  • 每个符号都有固定作用,不能随意改变
  • 符号的位置、大小写、配对都有严格规定
  • 只有完全符合语法规则的代码才能运行

编程语法 vs 人类语法

人类语法的特点:

  • 比较灵活,同一种意思有多种表达方式
  • 比如:"我吃饭"和"饭被我吃"都表示同样的意思

编程语法的特点:

  • 精确严格,通常只有一种正确的写法
  • 比如:if (score >= 60) 不能写成 if score >= 60

为什么需要如此严格的语法?

  1. 消除歧义:让计算机准确理解你的意图,没有误解的空间
  2. 保证执行:确保代码能够正确运行,不会因为模糊不清而出错
  3. 便于协作:全世界的程序员都使用相同的规则,可以互相理解代码

语法错误是什么?

代码的语法错误就是你写的代码违反了编程语言的语法规则。

具体来说:

  • 就像中文的语法错误:比如"吃饭我"这种错误的句子结构
  • 代码语法错误举例:if score >= 60(缺少必要的括号)
  • 后果:计算机无法理解你的代码,就像我们听不懂语法混乱的话
  • 解决方法:必须按照正确的语法规则修改代码,程序才能运行

简单来说,语法错误就是你的代码写得"不对",计算机看不懂,需要你用正确的格式重新写。

通过学习 if 语句,你已经掌握了编程语言最基本的语法规则!这种精确的思维方式将帮助你学习其他编程概念。

编辑器提示

在开始编写条件语句之前,请注意我们的编辑器有一些方便的功能:

自动补全配对符号:

  • 当你输入左边的 {、[、( 或 " 时
  • 编辑器会自动帮你输入对应的右边符号 }、]、) 或 "
  • 这样可以帮助你避免括号或引号不匹配的错误

自动缩进功能:

  • 当你输入 if (条件) { 并按回车换行时
  • 编辑器会自动帮你添加适当的缩进(通常是2个空格)
  • 你只需要继续输入代码内容,格式就已经正确了
  • 当你输入 } 时,编辑器会自动对齐到对应的 { 位置

空格和空行不影响代码执行

还记得我们在变量基础课程中学到的吗?空格和空行不会影响程序的执行,这个规则在条件语句中完全适用!

让我们来看各种写法的例子:

加载代码编辑器...

重要原则:

  • 所有这些写法在计算机看来都是完全一样的,都能正常执行
  • 空格和空行是为了让人更容易阅读代码,计算机执行时会忽略这些空白字符
  • 无论你是写成一行、多行、带缩进还是不带缩进,程序的结果都是相同的

我们的建议

虽然空格和空行不影响程序执行,但我们建议:

加载代码编辑器...

总结

条件语句的语法结构

  1. if 语句:当条件为 true 时执行代码

    • 语法:if (条件) { 要执行的代码 }
  2. if-else 语句:根据条件的真假执行不同代码

    • 语法:if (条件) { 条件为true时执行 } else { 条件为false时执行 }

条件判断的核心概念

  • 条件:结果必须是布尔值(true 或 false)
  • 执行逻辑:条件为 true 执行 if 分支,为 false 执行 else 分支

布尔变量的使用技巧

最佳实践:

  • 判断为 true:直接使用变量名 if (hasKey)
  • 判断为 false:使用 if (isVictory === false) 或者 if (isVictory !== true)

编程技能培养

  • 语法精确性:掌握 if 语句的完整语法结构和符号要求
  • 错误处理:学会识别和修正语法错误,阅读错误信息
  • 逻辑思维:理解条件判断的执行流程

掌握条件判断的基本语法和逻辑是编程的重要基础。现在你已经掌握了程序做决定的基本技能!在下一课中,我们将学习逻辑运算符来创建更复杂的条件判断。

Previous lesson
Previous
布尔类型与比较运算符 - 程序的判断基础
Next
变量作用域 - 变量的生存范围
Next lesson