objective-c - 如果在for循环中声明?

标签 objective-c ios xcode

我想写这样的东西,但我不确定如何写。

for(int i = 0; i < ( the greater value between intA and intB ); i++)

最佳答案

for语句中间的表达式的工作原理与任何if语句完全相同;仅当表达式的值为真时,循环才会继续。因此,有几种逻辑上等效的方式来编写您想要的内容:

// 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
}

但是在您的特定情况下,这些都不是理想的,因为前两个并不是真正的清晰代码,并且它们在循环的每次迭代中都评估intAintB。更好的是:
int maxAB = MAX(intA, intB);
for (int i=0; i < maxAB; ++i)
{
   // do stuff
}

关于objective-c - 如果在for循环中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7449430/

相关文章:

objective-c - wait_fences : failed to receive reply: 10004003 error still appearing

带有服务器的 ios 快速图像缓存

ios - 文本换行后 UITextView 大小不会改变大小,直到键入第二个字符

ios - 使用 UINavigationController 关闭 UIPopoverController

swift - 未找到框架 FBLPromises(Swift 包管理器)

ios - 为 tvOS 构建,但链接到为 iOS 构建的目标文件,用于体系结构 arm64

ios - 使用 iOS 向自己发送电子邮件。

objective-c - UIView 模态弹出窗口带有嵌入式 UITableView 和 UIToolbar,工具栏随表格移动

ios - 如何在用户移动时更改 iOS map 的方向?

ios - tablecell 在 IOS 6.0 中工作但在 IOS 5.1 中不工作