解锁所有课程内容,保存学习进度,系统化学习编程
无限循环是指循环的条件永远不会变成 false,导致程序无法停止,会一直重复执行循环体内的代码。
了解无限循环(鼓励实验!)
为什么要体验无限循环? 作为编程学习的一部分,我们鼓励你亲自体验无限循环!每个程序员都会遇到无限循环,提前体验可以帮助你:
实验指导 如果你决定尝试无限循环,按以下步骤操作:
第1步:运行无限循环代码
第2步:观察现象
第3步:简单恢复
Ctrl + H 打开浏览器历史Command + Y 打开浏览器历史学习成果 恭喜!通过这次实验,你已经掌握了:
记住:犯错是学习编程最自然的方式,敢于尝试才能快速进步!
其他无限循环模式 (可以用上面的方法继续实验这些模式)
例子1:条件设置错误
例子2:方向错误
什么是Bug和Debug?
想象一下你在搭建一个乐高模型,但发现最后有个零件装不上了。你会怎么做?你会一步一步地检查,看看是哪一步出错了。
在编程中,我们也有类似的过程。当代码有问题时,我们需要进行分析和修复,我们用专门的术语来描述这个过程:
Bug(程序错误):
:
为什么调试很重要?
最简单的调试方法:console.log
console.log() 就像是你在代码中放了一个个"摄像头",记录下程序的执行过程:
调试的黄金法则
法则1:当不知道发生了什么时,打印出来看看!
法则2:在重要步骤前后都添加日志
法则3:调试完成后,可以删除不需要的日志 就像建筑完成后会拆除脚手架一样!
记住:每个程序员都是调试专家!调试不是技术能力差的表现,而是专业程序员的标志。敢于调试,才能成为真正的编程高手!
让我们通过一个真实的例子来体验完整的调试过程!
目标:编写一个程序,统计1到20中能被3整除或者能被5整除的数字有多少个
第1步:编写有问题的代码
运行这个代码,你会发现输出结果是 10个。
我们遇到的问题:
第2步:手动验证答案 程序输出10个,这个结果对吗?让我们手动计算一下正确答案:
发现问题了!程序输出10个,但正确答案应该是9个。这就是逻辑错误:程序能运行,但结果不对。
现在让我们添加简单的调试信息来查看程序到底在做什么:
请运行上面的调试代码,仔细观察输出,你会发现数字15被统计了两次!
通过观察调试输出,我们可以分析出问题:
发现的bug:重复计算问题!
i % 3 === 0:15能被3整除 → count + 1i % 5 === 0:15也能被5整除 → count + 1解决思路:我们需要确保每个数字只被统计一次。
还记得我们学过的 || 运算符吗?只要满足任意一个条件就为 true,这样就能避免用两个独立的 if 语句导致的重复计算问题。
通过使用 || 运算符,我们相当于把两个分开的 if 语句合并成了一个:
if 语句 → 数字15可能被两个条件都满足,被计算两次if 语句 → 数字15只会被统计一次,不管它能被3整除还是5整除请运行修复后的代码,现在应该输出 9个,和我们手动验证的结果一致!
代码现在工作正常了,让我们移除调试信息,保留简洁的最终版本:
我们学到了什么?
console.log 观察程序执行过程||(或者)运算符的实际应用记住:每个bug都是学习机会! 通过调试解决的错误会让你印象更深刻,下次就不会再犯同样的错误了。
现在让我们来挑战一个稍微复杂的问题,这将帮助你巩固今天学到的调试技能!
任务要求: 我们需要在数字范围1-10中,找出所有两个数字相加是偶数的组合,但要排除重复的组合。
数字对定义:
调试挑战:
(1,3)和(3,1)都被统计了关键思考点:
方法一:控制循环范围(推荐)
b >= a 的情况for (let b = a; b <= 10; b = b + 1)方法二:添加条件判断
if 语句中增加条件 if ((a + b) % 2 === 0 && a <= b)a <= b,所以不会被统计为什么推荐方法一? 方法一更聪明,因为它直接避免了不必要的检查,就像买票时直接买不重复的座位,而不是买了所有座位再退掉重复的。
今天我们专注于学习循环调试的核心技巧:
console.log 观察程序执行过程console.log 进行代码调试掌握了这些调试技巧,你就能够:
调试是程序员最重要的技能之一。通过今天的学习,你已经掌握了系统性的调试方法,这将成为你编程学习道路上的强大工具!