我正在阅读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]
将在false时为假i = n
,因此i = n
如果不早于此,则循环将正确终止。
(这很令人困惑。)
i只是索引
i:= 1; 表示i等于1
i:= i + 1表示将i加1
n = 5
a [5] = 14
a [5 + 1] = a [6] = 14
14 <14为假-循环终止
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句