在 switch 语句中检查数字是否从 1 个数字匹配到另一个数字
Check if number matches from 1 number to another in switch statement
我有一个 switch
语句比较 integer
。我想做的是检查 integer
是否一直匹配 1 个数字,直到下一个。
例如:如果我想比较一个名为 myInteger
的 integer
,我想看看数字 2、3、4、5 或 6 是否与 `myInteger 匹配,那么执行以下操作。
这是一个编码示例:
switch (myInteger) {
case 0:
...
case 1:
...
case 2 to 7: // This is what I'm trying to achieve
...
}
那么,我怎样才能使 switch
语句遍历一个数字范围?
Objective-C 等基于 C 的语言不支持这种语法。只需使用 if 语句:
if (myInteger >= 2 && myInteger <= 7)) {
// do stuff
}
在 switch 语句中,每个 case 值必须是离散常数。
您实际上可以使用 ... 运算符对 objective C 执行此操作。
根据您的示例,这会在 0 到 7 和 8 到 14 之间找到。任何更大的都是默认操作。
switch (myInteger) {
case 0 ... 7:
break;
case 8 ... 14:
break;
default:
break;
}
亲自尝试一下,您会发现它有效。这是 gcc 支持的后遗症:
Switch-Case Statement and Range of Numbers
我有一个 switch
语句比较 integer
。我想做的是检查 integer
是否一直匹配 1 个数字,直到下一个。
例如:如果我想比较一个名为 myInteger
的 integer
,我想看看数字 2、3、4、5 或 6 是否与 `myInteger 匹配,那么执行以下操作。
这是一个编码示例:
switch (myInteger) {
case 0:
...
case 1:
...
case 2 to 7: // This is what I'm trying to achieve
...
}
那么,我怎样才能使 switch
语句遍历一个数字范围?
Objective-C 等基于 C 的语言不支持这种语法。只需使用 if 语句:
if (myInteger >= 2 && myInteger <= 7)) {
// do stuff
}
在 switch 语句中,每个 case 值必须是离散常数。
您实际上可以使用 ... 运算符对 objective C 执行此操作。
根据您的示例,这会在 0 到 7 和 8 到 14 之间找到。任何更大的都是默认操作。
switch (myInteger) {
case 0 ... 7:
break;
case 8 ... 14:
break;
default:
break;
}
亲自尝试一下,您会发现它有效。这是 gcc 支持的后遗症:
Switch-Case Statement and Range of Numbers