C++:这个while循环有什么问题

C++: What is wrong with this while loop?

本文关键字:什么 问题 循环 while 这个 C++      更新时间:2023-10-16

这是带有注释的相关问题代码

     // right now hack=1 & i=4(both integers)
while(hack<i)  //loop begins
    {
        hack++;
        Linklist<node*> z=advancer(l); 
      //Linklist is my own class, node is my own object type
      //l(type same as z) is predefined before the loop, and advancer is a function.
      //Interestingly, l=advancer(l) doesnt work directly so i introduce z 
      //which i do not understand why.
        l=z;
        cout<<"print" //just to confirm code reaches here, Yes it does
    }
//while loop doesnt execute again,checked by a cout statement in beginning.

因此,如果 while 循环到达最后一行,为什么不再次执行?C++有时会让我感到惊讶,但这是我见过的最令人惊奇的事情,而且我一无所知,因为这是非常基本的代码,似乎没有任何范围是错误的。请帮忙。各种可能的错误源将不胜感激。

我的实际程序太大(1000 行),所以我懒得提供其他功能的背景,因为我认为它不相关。我很想详细说明,如果这里有人可能是一个原因,并愿意倾听:)

我可以弄清楚的一件事是可能正在计算该函数,因此它在此期间执行了 cout,但这只是一个猜测。

您的代码正在未显示的其他地方做坏事。

C++当你犯错误时,不能保证错误会立即弹出,可能发生的事情(并且经常发生)是代码显然继续工作,但在另一个地方,代码是正确的行为似乎很疯狂。

while有效,你应该尽快把它刻进你的大脑,否则你就不可能在编程方面走得更远。

不止这个...编译器工作,库工作,然后操作系统工作,RAM正常。该错误仅在您的代码中。这是唯一允许进步的心态。

有时,很少,您可以在编译器或广泛使用的库中找到错误,但只有当您能够准确找到错误是什么并且您可以生成错误明显发生的示例时,才有权在其他人的代码中声明错误。

好书《实用程序员》中有一章是关于这种危险的心态的,这种心态真的会破坏你前进的可能性......标题为"select没有坏

"。