我试图更深入地理解 while 循环。我了解基本知识,即只要测试条件为真,一段时间就会重复该语句。
在 Accelerated C++ 一书中,作者陈述了以下内容:
//the number of blanks surrounds the greeting
const int pad = 1;
//total number of rows to write
const int rows = pad * 2 + 3;
//we have written r rows so far
int r = 0;
//setting r to 0 makes the invariant true
while (r != rows){
//we can assume that the invariant is true here
//writing a row of output makes the invariant false
std::cout << std::endl;
//incrementing r makes the invariant true again
++r;
}
//we can conclude that the invariant is true here
我不明白,为什么写一行输出不变量为假,然后在增量处再次为真。这本书的作者有没有搞错?
编辑 - 该变体只是一种智能工具,可以更轻松地理解 while 循环。在此示例中,变体是“r = 输出中的行数”。
------------什么是不变量---------------