Я ищу более краткий способ сравнить переменную с диапазоном чисел в тексте структуры (ST) - PullRequest
0 голосов
/ 17 мая 2019

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

В настоящее время я делаю: IF int_variable = 67 или int_variable = 68 или int_variable = 69 затем ...

Есть ли способ написать что-то вроде: IF int_variable = от 67 до 69 затем

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 20 мая 2019

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

IF int_variable >= 67 AND int_variable <= 69 THEN
    //It is 67, 68, or 69
END_IF
0 голосов
/ 23 мая 2019

Если сравнения всегда целые числа (или перечислимый тип), вы можете использовать оператор case.

    CASE example_int OF
        1,2: <do whatever you need to do>
        4,5,7,8: <do other stuff>
    ELSE
        <do default case stuff>
    END_CASE

Если вам нужны большие диапазоны, вам просто нужно использовать AND или вложенные IF (показанные ниже вложенные IF)

   IF example_int >= 2 THEN
       IF example_int < 5 THEN
           //in range 2 - 5
       ELSIF example_int <= 10 THEN
           //in range 6 - 10
       END_IF
   END_IF

Не забудьте помнить о конечных точках. Если вы забыли часть «или равно» в любом из приведенных выше операторов IF, это изменит диапазон

0 голосов
/ 17 мая 2019

Например, вы можете использовать цикл for, например:

FOR nCounter := 67 to 69 by 1 DO
    IF int_variable = nCounter THEN
        ....
        EXIT; // If you want to exit the loop
    END_IF
END_FOR
...