为什么这个for循环不正确?

Lor*_*din 4 c++ for-loop

Visual Studio告诉我这个for循环不正确.错误消息是:

  • 键入bool意外
  • ok是未声明的标识符
  • 失踪 ; 之前}

相关信息:

-recordset.Select返回一个long -MoveNext bool

for (size_t i = 0, bool ok = recordset.Select(Adress::getSQLStatement() + "Where A05.recid = %ld", i); ok; ok = recordset.MoveNext(), i++) {
    at(i).Save(recordset);
}
Run Code Online (Sandbox Code Playgroud)

Sto*_*ica 6

就像StenSoft说的那样.但是你可以在循环第一个语句中定义一个匿名结构,并初始化它.

#include <iostream>
using namespace std;

int main() {
    for (struct {size_t i; bool ok;} s = {0, true}; s.ok; ++s.i) {
        s.ok = s.i < 10;
        cout << s.i;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但恕我直言,虽然它有效,但它比它的价值更麻烦.更好地重组您的代码.