我想在我的代码中创建一个 switch 语句,其情况跨越大范围的整数 (1-15000),分为 3 个部分:1-5000,5001-10000,10001-15000。
我尝试过一次,如下:
switch(number) {
case 1 ... 1000: (statement here);
这给了我一个关于“...”-“需要一个:”的语法错误。
然后我尝试了:
switch (number) {
case 1:
case 5000:
(statement);
break;
此方法确实可以编译,但没有按预期工作,对于未明确列出的情况给出了错误的答案。
在线找不到任何其他建议。 有人可以帮忙吗?
最佳答案
这在标准 C 中是不可能的,尽管某些编译器提供范围切换作为编译器扩展1。
您的情况的惯用方式是编写
if (number < 1){
// oops
} else if (number <= 5000){
// ToDo
} else if (number <= 10000){
// ToDo
} else if (number <= 15000){
// ToDo
} else {
// oops
}
或者一种非常粗略的方法是编写 switch((number - 1)/5000)
,它利用整数除法:将需要处理的情况映射到 0、1 和 2。
关于c - C 中 case 范围的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49323861/