Понимание IF-заявления - PullRequest
       5

Понимание IF-заявления

0 голосов
/ 26 января 2011

Я вроде понимаю основы того, что он делает, но это сбивает с толку.Если бы кто-нибудь мог переписать его в простой псевдокод, это было бы очень полезно!

Я пишу приложение PHP, и мне нужен тот же алгоритм на PHP, но он не работает.*

Ответы [ 4 ]

0 голосов
/ 26 января 2011
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
0 голосов
/ 26 января 2011

Это вложенные операторы 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.

Это довольно просто.Либо CC_stolpar равно 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_dubbelgrind раз Antal_slanor на 2.

Вы получите только один результат из этого, в зависимости от того, меньше * 425 * или меньше.

Выповторите, по существу, тот же процесс для другого IF и суммируйте результаты.

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

Оба эти вложенных оператора IF оценивают, является ли Antal_slanor меньше 4. Итак, вы можете объединить их в одинЕСЛИ если это имеет для вас смысл.

В конце я бы предложил для вашего здравомыслия и здравомыслия тех, кому, возможно, придется читать это после вас, сохранить формулу как можно более простой в своем коде.

0 голосов
/ 26 января 2011

Вы просто должны смотреть на кусочки, а не на строку.

Как подсказка, это 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 голосов
/ 26 января 2011

Я не уверен, почему он дважды тестирует 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...