Short curcuit if statement in st

tandrium
2012-06-28
2012-06-28
  • tandrium - 2012-06-28

    Hallo Miteinander,

    ich habe schon Google und die Forumsuche abgeklappert, konnte jedoch keine Aussage hierzu finden.

    Mich würde es interessieren, ob es einen Syntax gibt, der das if statement veranlässt, nicht alle Angaben zu überprüfen sprich:

    if index <> -1 and valueArray[index] = 3 then
    end_if
    

    soll das if statement schon bei index <> -1 verlassen, ohne zu versuchen, mit dem ungültigen index auf das Array zuzugreifen.

    Oder bin ich hier darauf verdammt die Abfragen zu verschachteln?

     
  • Anonymous - 2012-06-28

    Originally created by: jl

    Hallo!

    Es wird dir nichts anders übrigbleiben, die IF-Anweisung zu verschachteln:

    IF index <> -1 THEN
    IF valueArray[index] = 3 THEN

    END_IF
    

    END_IF

    Außer Du bindest in Dein Project die Funktion "Checkbounds" mit ein, mit dieser Funktion wird automatisch überprüft, ob der Index innerhalb der gültigen Grenzen liegt. Wie das geht ist in der CoDeSys Hilfe beschrieben.

    FUNCTION CheckBounds : DINT
    VAR_INPUT
    index, lower, upper: DINT;
    END_VAR

    IF index < lower THEN
    CheckBounds := lower;
    ELSIF index > upper THEN
    CheckBounds := upper;
    ELSE CheckBounds := index;
    END_IF

     

Log in to post a comment.