如何在C的switch case语句中使用范围? |
您所在的位置:网站首页 › c语言中的switch › 如何在C的switch case语句中使用范围? |
我的逻辑是: 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 |