以下是Dennis M Ritchie的书ANSI C的摘录:
我无法拿出一个开关案例的例子,在这个案例中,我们的案例带有多个标签。
说明上述属性的任何示例都将有所帮助。
最佳答案
这是我在检查选项的程序中找到的示例:
switch (optionChar) {
case 'a': case 'A':
case 'f': case 'F':
case 'q': case 'Q':
case 'z': case 'Z': optionsOk = TRUE; break;
default: optionsOk = FALSE; break;
}
这可能不是我编写代码的方式(a),但肯定是有效的。当使用
case
产生的代码比需要较长动作的||
长连词短时,通常会使用它:if (optionChar == 'a' || optionChar == 'A' || ...
而且,实际上,K&R本身在您引用的报价后面有一个示例。它在用于计数不同字符类的代码中:
while ((c = getchar()) != EOF) {
switch (c) {
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
ndigit[c-'0']++;
break;
case ' ': case '\n': case '\t':
nwhite++;
break;
default:
nother++;
break;
}
}
(a)我可能会按照以下方式做一些事情:
optionsOk = (strchr("aAfFqQzZX", optionChar) != NULL);
关于c - C开关情况下的多个标签值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51796397/