2015-09-29 86 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