c - 除了 "If"语句之外,还有其他方法来处理输入吗?

标签 c logic

我是 C 和一般编程的初学者(我已经使用 C/C++ 编程两年了),我编写的唯一类型的程序是命令行数学处理器,它接受参数并执行操作他们。不会根据输入内容来 fork 要做什么。我不知道如何做这样的事情,所以我最近一直在做的就是以如下方式设计我的程序:

printf("What feature to use?");
int response;
scanf("%d", response);
if (response == 1)
{
     feature01();
}
if (response == 2)
{
     feature02();
}

...我就这样继续下去。对于我的程序来说,通常少于 10 个独特功能,这是可以的,但只是暂时的。如果我曾经编写过具有 50-100 个独特分支功能的程序,则可能会出现问题。如何在不使用上述方式的 if 语句的情况下处理输入并分支到不同的功能?

最佳答案

在许多情况下,您可以使用 switch 替换一系列互斥值的 if 语句:

switch (response)
{
    case 1:
        feature01();
        break;
    case 2:
        feature02();
        break;
    default:
        featureXX();
        break;
}

这大致相当于:

if (response == 1)
{
    feature01();
}
else if (response == 2)
{
    feature02();
}
else
{
    featureXX();
}

...除了编译器可以进一步优化switch

关于c - 除了 "If"语句之外,还有其他方法来处理输入吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014593/

相关文章:

c - int * 和 int a[size] 有什么区别

java - 不明白代码逻辑

MySQL IN BETWEEN 无条件

python - 如何在遍历数据框列后附加列表?

python - 如何在 Pandas 数据框中有效地查找交替 boolean 值的索引

c - Linux:通过make而不是c中的#include包含头文件

c - 在 C 中反转字符串

币种找零,以特定币种的类型作为返回值

c - 递归函数和pthreads

web-services - 谷歌结账 : Best way to handle cart editing and checkout confirmation