我正在学习计算机科学(远程学习)并且对出现在教科书中但没有答案的“额外信息问题”感到困惑。这是关于线性搜索算法和短路评估的。
书中线性搜索的算法是这样写的:
指针 = 0
WHILE 指针 < LengthOfList AND list[pointer] != searchedfor:
------ 指针加一
ENDWHILE
IF 指针 >= LengthOfList THEN:
------- PRINT("项目不在列表中")
ELSE
------- PRINT("项目在位置 " +pointer)
ENDIF
在额外的信息框中,它讨论了短路评估以及当布尔运算符链接多个部件时,计算机如何仅在必要时评估第二个条件。所以我得到了条件 1 和条件 2(使用短路评估时)如果条件 1 为假,则不会评估条件 2。
但是它随后会询问
“如果线路中未使用短路评估,您能否发现可能发生的运行时错误:
WHILE 指针 < LengthOfList AND list[pointer] != 搜索“
在过去的两周里,我一直在搜索并寻找答案,并在纸上一遍又一遍地用不同的项目运行算法,但我无法弄清楚运行时错误可能是什么。任何人都可以看看他们是否能发现这个错误并向我解释吗?非常感谢。