2011-01-26 65 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