2017-02-06 2 views
-5

Ich habe den folgenden Code und wie man sehen kann, dass ich in beiden Fällen Abschnitt = A verwende. Aber gibt es eine Möglichkeit, sowohl 1 & 2 in "Wenn" zu überprüfen, so dass mehr Zeilen des Codes zu vermeiden?Wie verwenden Sie mehrere Werte in wann (Auswerten)?

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

Jede Hilfe wird sehr geschätzt und bitte denken Sie daran, ich bin immer noch lernen. Vielen Dank! :)

+1

Wenn Sie sich also das ** Handbuch ** angesehen haben, das die ** Syntax ** der 'Evaluate'-Anweisung dokumentiert, was haben Sie gefunden? Angenommen, Sie haben sich das Handbuch angesehen und festgestellt, dass Sie nicht können, warum fragen Sie hier? Angenommen, Sie haben * nicht * gesehen, deshalb haben Sie viele Down-Stimmen bekommen, weil * "diese Frage keinen Forschungsaufwand zeigt" *. – Andreas

Antwort

0

vor allem: Ihr Code sieht nicht wirklich wie Java, C oder Cpp, und es hat nichts mit OOP zu tun, also korrigieren Sie die Tags.

Auf der Frage: Nach einer schnellen Suche nach Evaluate-When es wie COBOL switch-case (siehe IBM) mit den gleichen Attributen wie die bekannten scheint.

In switch-case kann man nicht wirklich OR Aussagen haben, aber Sie können nicht mit dem break mehrere Werte auf den gleichen Block zuweisen:

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 
} 

Dies simuliert eine OR-Anweisung. Und ist nicht möglich.

EDIT: Ich sehe jetzt, die Sprache ist Peoplecode. Noch nie davon gehört, aber Dokumentation zeigt: Evaluate-When ist nicht viel anders als Switch-Case

Trotzdem: Es gibt fast immer eine bessere Möglichkeiten als switch-case, siehe 1. Kommentar von Michael here.

+0

Offenbar ist es [Peoplecode] (https://docs.oracle.com/cd/E41633_01/pt853pbh1/eng/pt/tpcl/langref_PeopleCodeBuilt-inFunctionsandLanguageConstructs-073e6a.html). – George

+0

Danke allen :) und Entschuldigung für die grundlegende Frage. Hoffentlich werde ich bald lernen und werde mich nicht mit falschen Tags beschäftigen. Noch einmal vielen Dank! – LearningDeveloper

+0

noch nie zuvor von Peoplecode gehört. Aber beim Lesen der [Doku] (https://docs.oracle.com/cd/E41633_01/pt853pbh1/eng/pt/tpcd/concept_Statements-074b4d.html) ist es fast das gleiche wie bei jedem anderen Switch/Case ... –

Verwandte Themen