GNU case 范围扩展允许在 switch 语句中使用 case 范围:
switch (value) {
case 1 ... 8:
printf("Hello, 1 to 8\n");
break;
default:
printf("Hello, default\n");
break;
}
如何将其转换为标准 C(c99 或 c89)?添加个别案例陈述?
编辑:您将如何具体处理非常大的 switch 语句?
最佳答案
switch(value)
{
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
printf("Hello, 1 to 8\n");
break;
default:
printf("Hello, default\n");
break;
}
编辑:回答评论。
如果您有太多案例,那么您可能需要考虑将 switch-case 替换为 if-else 结构。它可以更清晰、简洁和可读。
if (value >=1 && value <= 8)
{
printf("Hello, 1 to 8\n");
}
else
{
printf("Hello, default\n");
}
关于将 GNU case 范围扩展转换为标准 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9922837/