我正在阅读这本书"如何通过计算机解决它"作者:RG Dromey。我被困在一个试图解释循环终止的句子上。这就是问题所在:
假设我们希望确定
n
个元素的数组严格按升序排列(即a[1] < a[2] < ... < a[n]
)。为此,我们可以使用以下说明:a[n+1] := a[n]; i := 1; while a[i] < a[i+1] do i := i+1
(现在,如果n
是元素数量,那么i
在这种情况下代表什么?它代表值吗?)
如果
n
被赋值为5且数据集为2,3,5,11,14,那么循环之前的第一个赋值将导致下面的数组配置:
(这是我感到困惑的地方。)
a[1] a[2] a[3] a[4] a[5] a[6] 2 3 5 11 14 14
这两个14保证在
a[i] < a[i+1]
时测试i = n
将为假,因此如果不在i = n
之前,循环将正确终止。
(这令人困惑。)
答案 0 :(得分:2)
我只是指数
我:= 1;意思是我是平等的1
i:= i + 1表示将i加1
n = 5
a [5] = 14
a [5 + 1] = a [6] = 14
14&lt; 14是错误的 - 循环终止