int getInt(void)
{
int i;
printf("enter number:\n");
if (scanf (" %d", &i)==1) return i;
return 0;
}
int main()
{
//...
switch (getInt()) {
case 0: printf("Error\n"); break;
case 1: //...
case ...
}
}
0
只要该函数返回一个整数类型,你就可以这样做 . 所以给出:
int someFunction( void ) ;
然后:
switch( someFunction() )
{
...
已验证 . 它与以下几点不同:
int x = someFunction() ;
switch( x )
{
...
但后者可以说更容易调试 . 例如,您可以单步执行后者并从 x 的值知道将输入哪个案例,并有机会修改 x 以强制替代路径 . 前者除了简洁之外没有什么其他优点 .
2 回答
编写一个要求用户输入的函数,然后在switch表达式中调用该函数 . 例如:
只要该函数返回一个整数类型,你就可以这样做 . 所以给出:
然后:
已验证 . 它与以下几点不同:
但后者可以说更容易调试 . 例如,您可以单步执行后者并从
x
的值知道将输入哪个案例,并有机会修改x
以强制替代路径 . 前者除了简洁之外没有什么其他优点 .