微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代器的值未在for循环的if语句内更新

如何解决迭代器的值未在for循环的if语句内更新

我想知道为什么当i == n-1时,i的值不更新为i = 0,就像我在代码中所写的那样。布尔标志只是在那里检查if语句是否正在渲染(是)。

background-size: contain;

解决方法

您怎么知道它没有做您想要的事情。我运行它并得到了它:

$ ./foo 1个 2 3 4

5 1个 $

最终值(1)为true。所以看起来好像是在对我做。

但是,这是非常糟糕的代码。像这样在循环中混入迭代器变量是一种非常糟糕的做法。那会咬你的。此外,您不会回到0,而是会回到1,因为接下来要做的就是用i ++递增变量。因此,如果您的if语句将i设置为0,并且您的for循环将其变为1。

但是这很奇怪。如果需要多次运行循环,则将其包装在更大的循环中。


其他人对printf发表了评论。我个人不同意。有时候printf是完全有效的。但是,将其用于如此简单,未经格式化的内容的方法实际上并不是其中之一。

我将最后一个printf更改为此:

cout << "Flag (raw): " << flag << ". Which means: " << (flag ? "True" : "False") << endl;

输出是这样

Flag (raw): 1. Which means: True

如您所见-它是1,不是0,所以是真的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。