objective-c - 在 switch 语句中使用变量作为 case 常量

标签 objective-c switch-statement

我尝试使用变量作为大小写匹配,但是我得到“表达式不是 Objective-C 中的整数。

是否可以以这种方式在开关中使用变量?

  int count = [array count];

    switch ([number to check]) {
        case 0:
            //first statement
            break;
        case 1 ... (count -1):
           //somewhere between 1 and the next to last statement
           //Basically the middle
            break;
        case count:
            //Last statement

        default:
            break;
    }

最佳答案

Objective-C(和 C)switch 仅支持每个 case 语句的单个原始常量值(或 TwoStraws 的答案中指出的范围)。使用 if/else 编写代码会更好:

if ([number to check] == 0) {
} else if ([number to check] >= 1 && [number to check] < count) {
} else if ([number to check] == count) {
} else {
}

关于objective-c - 在 switch 语句中使用变量作为 case 常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34362850/

相关文章:

networking - 术语“交换机”和“路由器”在 OpenFlow 上下文中有意义吗?

C++ — 使用 getch() 的箭头键按下检测莫名其妙地打印了一些单词

php - PHP 的 "alternative syntax"允许这样做还是 switch 语句?

objective-c - 使用 NSScanner 删除字符串中的注释?

ios - 如何根据 UITableView 的高度给 UITableViewCell 高度百分比?然后所有的 UITableViewCell 都可以不滚动显示出来

ios - 由于没有路径扩展,因此无法读取路径

javascript - 有没有更好的方法来编写这个 switch 语句 javascript

javascript - 如何使用 switch (clickCount) 函数更改多个图像,然后更改 url

Objective-C 乱码求解器

ios - iOS 8 及更高版本中的更多选项卡图标颜色