Как использовать несколько значений в когда (Evaluate)?

У меня есть следующий код, и, как видно, в обоих случаях я использую Section = A. Но есть ли способ проверить оба "1" и "2" в "Когда", чтобы избежать большего количества строк кода?

Evaluate INTERFACE
When "1"
   SECTION = "A";
   Break;
When "2"
   SECTION = "A";
   Break;

Любая помощь высоко ценится, и, пожалуйста, помните, что я все еще учусь. Спасибо!:)

1 ответ

Решение

Прежде всего: ваш код на самом деле не похож на Java, C или Cpp, и он не имеет ничего общего с ООП, поэтому исправьте теги.

На вопрос: после быстрого поиска Evaluate-When кажется, что COBOL (см. IBM) с теми же атрибутами, что и хорошо известный switch-case,

В switch-case вы не можете иметь ORоператоры, но вы можете назначить несколько значений одному и тому же блоку, не используя break:

char c = 'a';
switch(c){
    case 'a':
    case 'A':
        fooA(); //'a' AND 'A' will land here
        break;
    case 'b':
        fooSmallB(); //only 'b' lands here
    case 'B':
        fooB(); //'b' AND 'B' lands here
        break;
    default:
        fooDef(); //Everything that does not hit any case lands here
}

Это имитирует оператор OR. И это невозможно.

РЕДАКТИРОВАТЬ: я вижу сейчас, язык это люди. Никогда не слышал об этом раньше, но документация показывает: Evaluate-When мало чем отличается от Switch-Case

Тем не менее: почти всегда есть лучшие возможности, чем switch-caseсм. 1-й комментарий от Майкла здесь.

Ваш синтаксис и Evaluateоператор принадлежит к языку программирования PeopleCode, который используется в Oracle ERPPeopleSoft

Evaluate похож на оператор switch/case, и вот пример того, как вы можете правильно использовать его в PeopleCode в соответствии с вашим заданным сценарием.

Evaluate &yourVariable
When = "1"
When = "2"
   Warning "Value is either 1 or 2";
   Break;
When = "3"
   Warning "Value is 3";
   Break;
When = "4"
   Warning "Value is 4";
   Break;
When-Other
   Warning "Unexpected value."
End-Evaluate;

Вот подробная официальная документация об операторе оценки PeopleCode.

Другие вопросы по тегам