2011-01-26 63 views
0

我有點理解它所做的基本操作,但它會令人困惑。如果有人可以重新寫入簡單的僞代碼,將不勝感激!理解IF語句

我正在寫一個PHP應用程序,我需要在PHP中使用相同的算法,但它不工作。

=IF(CC_stolpar=2; 
    IF(Antal_slanor<4; 
     6*Antal_dubbelgrind; 
     Antal_dubbelgrind*Antal_slanor*2) 
    + 
    IF(Antal_slanor<4; 
     3*Antal_enkelgrind; 
     Antal_enkelgrind*Antal_slanor); 
    0) 
+0

提示:念想,如果(條件;然後,其他人) – 2011-01-26 15:43:35

回答

0

我不知道爲什麼他測試antal_slanor<4兩次,應該是相當於

=IF(CC_stolpar=2; 
    IF(Antal_slanor<4; 
     6*Antal_dubbelgrind    + 3*Antal_enkelgrind; 
     Antal_dubbelgrind*Antal_slanor*2 + Antal_enkelgrind*Antal_slanor); 
    0) 
0

這嵌套的IF語句,其遵循的模式IF-THEN-ELSE

IF (condition); what to do if condition is true; what to do if condition is false 

所以你的外部IF是IF(CC_stolpar=2 THEN (do all this complicated stuff) ELSE 0

這很簡單。​​3210或者是2,或者不是,如果它有任何其他值不是2,那麼結果爲零。

「複雜的東西」是總結兩個不同的IF語句的結果。

第一個是

IF(Antal_slanor<4; 
6*Antal_dubbelgrind; 
Antal_dubbelgrind*Antal_slanor*2) 

如果Antal_slanor小於4,則相乘Antal_dubbelgrind倍6.

如果Antal_slanor大於或等於4,再乘Antal_dubbelgrindAntal_slanor倍2。

根據Antal_slanor是否小於4,您只能得到一個結果。

您重複其他IF的基本相同的過程,並對結果進行求和。

IF(Antal_slanor<4; 
3*Antal_enkelgrind; 
Antal_enkelgrind*Antal_slanor); 

這兩個嵌套的IF語句評估是否Antal_slanor小於4。所以,你可以將它們合併成一個單一的IF如果這對你有意義。最後,爲了您自己的理智和其他人的理智,您可能需要閱讀這些內容,請在代碼中儘量簡化公式。

0

你只需要看看件而不是排成一行。

作爲提示,它CC_stolar = 2,那麼結果是兩個嵌套IF語句的總和。

或許有些括號將有助於:

=IF(CC_stolpar=2; 
    { 
    IF(Antal_slanor<4; 
     { 
      6*Antal_dubbelgrind; 
     } else { 
      Antal_dubbelgrind*Antal_slanor*2) 
     } 
    +IF(Antal_slanor<4; 
     { 
      3*Antal_enkelgrind; 
     } else { 
      Antal_enkelgrind*Antal_slanor) 
     } 
    } else { 
     ;0) 
    } 
0
IF CC_poles == 2 then 
    IF NUMBER_OF_POLES < 4 THEN 
     RESULT = 6*NUMBER_OF_DOUBLE_GATES + 3* NUMBER_OF_SINGLE_GATES; 
     ELSE 
     RESULT= NUMBER_OF_DOUBLE_GATES*NUMBER_OF_POLES*2 + NUMBER_OF_SINGLE_GATES * 
       NUMBER_OF_POLES 
    ENDIF 
ELSE 
    RESULT = 0 
ENDIF