for循环的条件属于循环不变量吗

来源:2-6 循环不变量

ccattempt

2022-01-09 23:33:00

老师,for循环的小括号里面的条件属于循环不变量吗?因为for循环的判断条件也可以写在循环体里面。

写回答

1回答

liuyubobobo

2022-01-10

属于。只要能写出一个循环,就能定义出循环不变量,哪怕是一个空循环。


for(int i = 0; i < n; i ++); (直接分号,表示没有动作,空循环)的循环不变量是:第 k 轮循环,i 的值为 k。虽然这没什么意义,但这是一个循环不变量。


所有的循环结构都是等价的,无论是 for,while,还是 do while,还是 foreach,都可以用来表达同样的循环逻辑。所以,循环不变量和你使用什么关键字写这个循环没有关系。


==========


最关键的是,循环不变量是一个“思维层面”的概念,而非一个代码层面的概念。我们不需要仔细地去分辨“哪句话属于循环不变量或者哪句话不属于循环不变量”。循环不变量是为了帮助我们写出正确的代码,而非是为了做这种辨析。


这一点你在“线性查找”这个例子中可能看的不很清晰,因为这个算法太简单了,没有“循环不变量”的概念,大多数人也能正确地写出来。但是,在课程后续的很多更复杂的算法中,你就能看到循环不变量是如何帮助我们写出正确的程序了。


继续加油!:)


1
hcattempt
hp>谢谢老师~

h022-01-10
共1条回复

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2602 学习 · 1086 问题

查看课程