17、编程中的循环推理、临时变量与嵌套语句

编程中的循环推理、临时变量与嵌套语句

在编程中,解决问题的算法是关键。对于一些问题,虽然没有通用的算法,但四步流程能为找到解决方案提供重要指导。

1. while 语句的推理

我们已经证明,至少在伪代码中,解决方案对某个特定问题实例是有效的。但对于其他不同规模的情况呢?我们无法测试所有可能的初始情况(因为有无数种),但可以测试几种情况,让自己相信解决方案是正确的。

非正式推理 while 语句有两个步骤:
- 步骤一 :证明当初始情况使 while 语句的测试为假时,语句能正确工作。例如,当堆中只有一个物品时,机器人捡起该物品后进行测试,结果为假。
- 步骤二 :证明每次执行循环体时,新情况是旧情况的较小但相似版本。“较小”意味着完成循环前的工作量减少,“相似”意味着执行循环体时情况没有根本改变(如机器人方向改变就属于不相似变化)。

通过跟踪循环的几次迭代,我们发现每次迭代后堆的大小减少 1。这让我们相信,最终 while 循环会变为假,而我们已经验证了这种情况的正确性。

2. 临时变量

机器人类有计算背包中物品数量的方法,但没有计算交叉点上物品数量的对应方法。例如,一个机器人要跟随另一个机器人留下的痕迹,交叉点上物品数量不同,机器人的行动也不同:0 个物品前进,1 个物品左转,2 个物品右转。利用临时变量可以解决这类问题。

临时变量(也称为局部变量)存储一个值,供同一方法后续使用。例如以下代码中的 sanDiego karel 就是临时变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值