Objective c for循环中的If语句?

Objective c for循环中的If语句?,objective-c,ios,xcode,Objective C,Ios,Xcode,我想写这样的东西,但我不知道怎么写 for(int i = 0; i < ( the greater value between intA and intB ); i++) for(inti=0;i

我想写这样的东西,但我不知道怎么写

for(int i = 0; i < ( the greater value between intA and intB ); i++)
for(inti=0;i<(intA和intB之间的较大值);i++)

使用三元运算符:

for(int i = 0; i < (intA > intB ? intA : intB); i++)
for(inti=0;i<(intA>intB?intA:intB);i++)

使用三元运算符:

for(int i = 0; i < (intA > intB ? intA : intB); i++)
for(inti=0;i<(intA>intB?intA:intB);i++)
使用tha MAX宏

MAX( a, b )
如果不可用,您可以定义它:

#define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
使用tha MAX宏

MAX( a, b )
如果不可用,您可以定义它:

#define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
for(inti=0;i<((a)<(b)?(a):(b));i++)
用于(int i=0;i<((a)<(b)?(a):(b));i++)

< /代码> 在<<代码>中的语句的表达式与< <代码> > <<代码>语句完全相同;只有当表达式的计算结果为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
}

<> < <代码>中的< < /C> >语句的表达式与< <代码> > <<代码>语句完全相同;只有当表达式的计算结果为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
}


我建议在每次执行for语句之前使用MAX宏或额外的if语句。使用三元运算符不够清楚,无法支持将来的维护。但这只是我的意见

我建议在每次执行for语句之前使用MAX宏或使用额外的if语句。使用三元运算符不够清楚,无法支持将来的维护。但这只是我的意见

奇怪的是你们就是这么看他的问题的,对我来说,
if
for
表达式之外的
if
让我觉得他想测试结果值或其他什么。我想你的意思是
for
而不是
if
。@Blindy这个标题说明了一切……更像是一个IQ问题,而不是一个与编程相关的查询。。!!奇怪的是你们就是这么看他的问题的,对我来说,
if
for
表达式之外的
if
让我觉得他想测试结果值或其他什么。我想你的意思是
for
而不是
if
。@Blindy这个标题说明了一切……更像是一个IQ问题,而不是一个与编程相关的查询。。!!这些括号都需要吗?嗯?我说的是括号,不是参数。。。抱歉:P在处理复杂表达式时需要括号,而不是变量。噢。。。赋值运算符和逗号运算符的优先级低于三元运算符。艾克,这些括号都需要吗?嗯?我说的是括号,不是参数。。。抱歉:P在处理复杂表达式时需要括号,而不是变量。噢。。。赋值运算符和逗号运算符的优先级低于三元运算符。您的条件或操作数是向后的。现在,如果
a
较小,则三元运算符的值为
a
条件运算符或操作数向后。现在如果
a
较小,则三元运算符的值为
a
+1良好答案。关键的一点是,for循环条件在每次迭代中都会被评估,因此,如果可能,可以避免像adpalumbo在上一个代码块示例中使用他的
maxAB
变量那样进行不必要的评估。+1回答得好。关键的一点是,for循环条件在每次迭代中都会被评估,因此,如果可能,可以避免像adpalumbo在上一个代码块示例中使用他的
maxAB
变量那样进行不必要的评估。