如果在for循环中声明?

Jam*_*nay 1 xcode objective-c ios

我想写这样的东西,但我不知道如何.

for(int i = 0; i < ( the greater value between intA and intB ); i++)
Run Code Online (Sandbox Code Playgroud)

adp*_*mbo 5

for语句中间的表达式与任何if语句完全相同; 只有当表达式求值为true时,循环才会继续.因此,有一些逻辑上等效的方式来编写你想要的东西:

// using a ternary operator
for (int i=0; i < ((intA > intB) ? intA : intB); ++i)
{
    // do stuff
}

// using a simple Boolean OR
for (int i=0; i < intA || i < intB; ++i)
{
    // do stuff
}

// using a MAX macro
for (int i=0; i < MAX(intA, intB); ++i)
{
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但是,在特定情况下,这些都不是理想的,因为前两个是真不明白的代码,他们都评价intAVS intB通过循环每次迭代.甚至更好的是:

int maxAB = MAX(intA, intB);
for (int i=0; i < maxAB; ++i)
{
   // do stuff
}
Run Code Online (Sandbox Code Playgroud)