C++ 何时在for循环中应用预减量?

C++ 何时在for循环中应用预减量?,c++,algorithm,for-loop,C++,Algorithm,For Loop,我正在努力实施 该算法的大部分是for循环: 据称,该循环运行了十次: 整个修改系列是一系列10个相同的双回合 我已经将算法移植到自己的语言中,结果与测试向量不匹配。因此,我试图从C语言的细节中找出我可能做错的地方 我的代码与测试向量的结果不匹配的原因可能是,它应该只运行九次: 如果我从逻辑上阅读If语句,它只执行九次 人们仍然不明白为什么他们说它能跑10圈,然后用20作为初始值 我尝试复制我看到的逻辑,执行它的次数比记录的少一次,但我的结果仍然不匹配。不幸的是,我无法访问任何函数代码来将结果与

我正在努力实施

该算法的大部分是for循环:

据称,该循环运行了十次:

整个修改系列是一系列10个相同的双回合

我已经将算法移植到自己的语言中,结果与测试向量不匹配。因此,我试图从C语言的细节中找出我可能做错的地方

我的代码与测试向量的结果不匹配的原因可能是,它应该只运行九次:

如果我从逻辑上阅读If语句,它只执行九次

人们仍然不明白为什么他们说它能跑10圈,然后用20作为初始值

我尝试复制我看到的逻辑,执行它的次数比记录的少一次,但我的结果仍然不匹配。不幸的是,我无法访问任何函数代码来将结果与已知的良好实现进行比较。所以我可能找错人了


我是不是选错树了?

一个for循环进行初始化、测试、主体、增量、测试、主体、增量、测试、主体等。增量在第一次测试之前不应用。

for条件的第三部分在迭代后执行


循环运行10次,每次迭代的主体i为20、18、16、14、12、10、8、6、4、2。

如果您想从for循环中的最后一个元素转到第一个元素,但又不想看到丑陋的元素,则作为旁白:

for (let i = arr.length - 1; i >= 0; i--)
您可以使用:

for (let i = arr.length; i-- > 0;)
例如:

常数arr=['a','b','c']; 对于let i=阵列长度;i->0;{ log`arr[${i}]是:${arr[i]}`;
}这在C中不是同样的工作方式吗?一个拥有6万多声誉的人怎么可能不知道for循环是如何工作的?不幸的是,我没有访问任何函数代码来将我的结果与已知的良好实现进行比较。斯雷?使用愚蠢的在线IDE很容易证明你的假设。@Casey我主要使用现代语言。我很少倒计时。我不相信我曾经在for中使用过predecrement。@IanBoyd在循环计数中没有像predecrement这样的东西。我怀疑你主要是在列表上使用c for循环进行迭代,这意味着使用预减量是一种误导;前置减量和后置减量在for循环中是等效的?术语前置减量通常指表达式-x,它不出现在代码中,但如果它们是语句中的唯一内容,则-x和x是等效的,因为表达式的值被忽略。这个表达式的存在只是因为它的副作用是修改x。哦,我的上帝;你说得对。老兄,我累坏了。这就解释了。尽管我回到原点,试图找出我的端口与测试向量不匹配的原因。
for (let i = arr.length - 1; i >= 0; i--)
for (let i = arr.length; i-- > 0;)