如何在when(Evaluate)中使用多个值? - 人码

How to use multiple values in when (Evaluate)? - PeopleCode

我有以下代码,可以看出在这两种情况下我都使用 Section = A。但是,有没有办法在 "When" 中同时检查 1 和 2 以避免更多行代码?

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

非常感谢任何帮助,请记住我还在学习。谢谢! :)

首先:你的代码看起来不像Java、C或Cpp,而且它与OOP无关,所以更正标签。

对于问题: 在快速搜索 Evaluate-When 后,它似乎与 well-known switch-case.

具有相同属性的 COBOL(参见 IBM

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-statement。而且是不可能的。

编辑: 我现在明白了,语言是 peoplecode。以前从未听说过,但文档显示:Evaluate-When 与 Switch-Case

没有太大区别

然而:几乎总有比 switch-case 更好的可能性,请参阅 Michael here 的第一条评论。

您的语法和 Evaluate 语句属于 PeopleCode Oracle ERP PeopleSoft

中使用的编程语言

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;

Here 是PeopleCode evaluate 语句的详细官方文档