Python While循环在Reeborg's World中出现无限循环的原因排查
问题原因分析
核心差异就在while循环的判断逻辑上:
你的代码逻辑:
while not at_goal(): if front_is_clear(): move()当Reeborg没到终点但前方有墙时,
front_is_clear()返回False,不会执行move(),但not at_goal()仍为True,循环会一直重复判断,永远跳不出去,直接触发无限循环。老师的代码逻辑:
while front_is_clear() and not at_goal(): move()老师把
front_is_clear()也放进了while的判断条件里——只要前方不能走,或者已经到终点,循环就直接停止。之后老师应该还有转向类的代码(比如turn_left()),让Reeborg能绕开障碍继续向终点移动,自然不会出现无限循环。
你后来加多个条件却撞墙,大概率是条件组合逻辑出错,比如误写成or连接条件,或者循环停止后没加转向逻辑,导致Reeborg直接往墙的方向走。
内容的提问来源于stack exchange,提问作者SmallCoder12
相关产品推荐
相关产品推荐

