我是 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/