【问题标题】:How can I use functions in switch-case?如何在 switch-case 中使用函数?
【发布时间】:2018-12-09 16:32:59
【问题描述】:

嘿,我搜索了它,但我找不到...我需要一个函数来从 switch case 中的用户那里获取信息。

switch (/* FUNCTION  */) {

在这种情况下如何使用函数?

【问题讨论】:

  • 您提出这个问题的事实表明您已经尝试过但失败了。在这种情况下,发布失败的代码并要求解释。如果您还没有尝试过,请在提问之前尝试。如果您只是要求一个将接收输入的函数,那么这是一个完全不同的问题,与 switch 构造无关。

标签: c function switch-statement


【解决方案1】:

只要函数返回一个整数类型,你就可以做到。所以给定:

int someFunction( void ) ;

然后:

switch( someFunction() )
{
    ...

有效。它与以下内容略有不同:

int x = someFunction() ;
switch( x )
{
    ...

但后者可以说更容易调试。例如,您可以单步执行后者,从x 的值中知道将输入哪种情况,并有机会修改x 以强制替代路径。前者除了简洁之外没什么优点。

【讨论】:

    【解决方案2】:

    编写一个要求用户输入的函数,然后在 switch 表达式中调用该函数。例如:

    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 ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 2013-08-22
      相关资源
      最近更新 更多