Как использовать несколько значений в когда (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.