2015-09-29 44 views
-2

我想知道一些基于传递给程序的命令行选项来执行代码块的好方法。该程序应根据参数数量进行扩展。对于如:解析命令行参数后执行某些操作的最佳方法

if (option1 and option2) 
    do something; 
if(option1 or option2) 
    do something; 
if (option3 and option4) 
    do something; 

所以,我想我的程序是可靠和处理所有提供的选项的情况。我知道我可以使用if-else或switch语句并实现这一点,但这需要大量处理。这是唯一的方法吗?有没有更好的方法来实现这一目标? 谢谢

+2

如何最好地处理命令行参数处理在很大程度上取决于您想要执行的处理类型。你有所有可用的工具,你曾经做过。您可能会考虑寻找面向命令行处理的函数或库,例如GNU getarg,但最终这些只会帮助您确定参数*是*。你仍然必须编写大致相同的代码来选择如何处理它们。 –

+0

我正在寻找执行基本处理,我想找到最好的方式来分支和做一些事情。我想知道是否可以避免所有选项的if-else逻辑。 – shank22

回答

1

最后,你需要根据提供的输入自己做决策。

但是,如果你想使这个干净,你可以尝试这样的事:

= >>在第一个步骤,你可以得到的状态。这将有助于在整理所有条件分支在一个地方

if (option1 and option2) 
    set STATE1; 
if(option1 or option2) 
    set STATE2; 
if (option3 and option4) 
    set STATE3; 

= >>现在,一旦状态有明确规定,你可以尝试做:

case STATE1: 
    do something; 
case STATE2: 
    do something; 
case STATE3: 
    do something; 

可能是它是不是答案你正在寻找。但这肯定会帮助你更好地构建你的程序。

+0

我实际上使用了二维数组和切换案例,并构建了一个很好的决策算法,决定如何处理命令行选项。谢谢! – shank22

+0

@ shank22很高兴听到您能够继续。 – Pawan