如何在C的switch case语句中使用范围?

您所在的位置:网站首页 c语言中的switch 如何在C的switch case语句中使用范围?

如何在C的switch case语句中使用范围?

2024-04-15 15:47| 来源: 网络整理| 查看: 265

我的逻辑是:

12if number is between 1 to 10, execute first case statement if number is from 20 to 30, execute second case statement

除了下面的解决方案,还有其他解决方案吗?

12case '1' ... '10': case '20' ... '30': 相关讨论 您唯一的选择是按照自己的意愿或按照pzaenger的建议进行。 如果您需要非便携式解决方案,则gcc可以使用基于范围的大小写。 您的意思是1 ... 10,而不是1 ... 10。 该构造是gcc扩展,而不是标准C。 将GNU大小写范围扩展转换为标准C的可能重复项

作为语言扩展,GCC编译器支持的大小写范围如下:

1234 switch(i) {     case 0 ... 9: return true;     default: return false;  }

Clang / LLVM也接受此语言扩展。因此,如果您有能力将代码限制为GCC和Clang编译器,请使用它。

另请参阅。

我不知道为什么此扩展未包含在C11标准中。

123456789void SwitchDemo(int value)    {    switch(value / 10)       {       case 0: ...; break; // 0 - 9       case 1: ...; break; // 10 - 19       ...       }    }

或特定于问题范围:

123456789void SwitchDemo(int value)    {    switch((value-1) / 10)       {       case 0: ...; break; // 1 - 10       case 1: ...; break; // 11 - 20       ...       }    }

选项1:对于0-9使用case 0,对于11-20使用case 1,依此类推。

选项2:使用if

选项3:

另一种破旧的方法是使用类似的情况:

1234567891011121314151617181920212223242526272829303132333435363738394041424344#include int main(void) {     int i=1;     for(i=1;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3