【发布时间】:2013-05-27 23:15:27
【问题描述】:
这是一个 C/C++ for 循环:
int i;
for (i = myVar; i != someCondition(); i++)
doSomething();
// i is now myVar plus the number of iterations until someCondition
我最近不得不使用这样的循环。我需要保留i 的值,因为当someCondition() 的返回值变为真时,我想知道i 是什么。而i 的起始值为myVar,没有进一步存在的理由。那么想要做的是:
for (myVar; myVar != someCondition(); myVar++)
doSomething();
// myVar is now myVar + the number of iterations.
这对我来说更有意义。当myVar 正是我需要的时候,我不明白为什么我必须使用一个全新的变量。但这不是有效的代码。有没有办法为这种情况创建一个全新的变量?
【问题讨论】:
-
将
for (init;condition;step)的init部分留空:for( ; condition ; step)。 (当然这假设myVar在循环之前的某个位置声明。)