2013-11-01 29 views
-4

要實施我的項目中的功能,我必須檢查36個條件。例如,假設第一個和第二個是我的輸入變量。我們可以使用1-6作爲第一和第二。 如果First = 1並且會檢查Second的值。如果是2,那麼我將打印爲First = 1Second = 2。如果Second is 3,打印爲First = 1Second = 3 .....像這樣我需要實施6 * 6 = 36條件。是否有任何替代實施100-1000「if ... else」情況

我使用下面的邏輯

Switch(First) 
Case 1: 
    if(Second ==2) 
    { 
     print First =1 , second =2 
    } 
    else if (Second == 3) 
     print First = 1 And Second =3 
     ...................... 

Case 2: 
     ////// check all the remain 5 cases of Second value 
case 3: 
      ------------ 
. 
. 
. 
. 
case 6: 

但我不開心,我實現的邏輯,因爲如果我有一些100-200的條件,這是不好的做法。

中的任何一個,如果你知道任何替代方案,請大家幫忙

在此先感謝。

問候, Firoz

+6

如果您認爲您需要這樣做,那麼您幾乎肯定會走錯路。也許更多關於你正在嘗試的信息可能會有所幫助 - 而且,這是Java,C還是C++問題?它不能一次全部使用 - 你實際使用哪種語言? –

+4

爲什麼不只是'std :: cout <<「First =」<< First <<「Second =」<< Second;'? –

+6

當然有其他的選擇,但是你說出你的問題的方式無法回答。告訴我們您正在嘗試解決的問題以及您實際使用的3種語言中的哪一種。 –

回答

0

如果 '第一' 和 '第二' 均在1-6範圍內,只要切換(第一* 10 +秒)。那麼case 11意味着first = 1,second = 1;情況12意味着first = 1,second = 2;情況21意味着first = 1,second = 1;情況22意味着first = 2,second = 2;等等。

或者如果您只需要打印一條消息,只需創建一個由[first] [second]索引的消息表。

2

您可以將所有信息放在一個表格中,然後編寫代碼來搜索表格中的結果。

+0

是的。使用函數指針數組。像這樣---- typedef void(* FP)(); FP表[7] [7]; – thomas

相關問題