Chapters: 1: Introduction 2: Simple example 3: Invocation 4: Finer Control 5: X-Y Plots 6: Contour Plots 7: Image Plots 8: Examples 9: Gri Commands 10: Programming 11: Environment 12: Emacs Mode 13: History 14: Installation 15: Gri Bugs 16: Test Suite 17: Gri in Press 18: Acknowledgments 19: License Indices: Concepts Commands Variables | ### 9.3.17: ``if`' (See also see If Statements.)
    `if {[!] .flag.}|\flag|{{"string1" == "string2"}}'
Control program flow. The ``if`' block is ended with a line containing ``end if`'. Optional ``else`' and ``else if`' blocks are allowed. Note that rpn expressions are allowed, and a special form of string comparison is allowed, as in the examples below.
    if .flag.
      # List of Gri commands to be done if .flag. is 1.
      # This list may extend across any number of lines.
    end if
If the variable ``.flag.`' is not equal to 0, do the code between the ``if`' line and the ``end if`' line.
    if .flag.
      # Commands done if .flag. is 1
    else
      # Commands done if .flag. is 0
    end if
If the variable ``.flag.`' is not equal to 0, do the code between the ``if`' line and the ``else`' line. If ``.flag.`' is equal to 0, do the code between the ``else`' line and the ``end if`' line.
    if ! .flag.
      # Commands done if .flag. is 0
    end if
If the variable ``.flag.`' is equal to 0, do the code between the ``if`' line and the ``end if`' line.
    if {rpn .flag. 10 <}
      # Commands done if 10 is less than .flag.
    end if
If the variable ``.flag.`' is greater than 10, do the code between the ``if`' line and the ``end if`' line.
    if \smooth
      # Commands done if \smooth is 1
    else
      # Commands done if \smooth is 0
    end if
If the number stored in the synonym ``\smooth`' is not equal to 0, do the code between the ``if`' line and the ``else`' line. If the synonym stores a representation of a number not equal to zero, do the ``else`' part. If the synonym contains text that does not decode to a number, generate error message.
    if {"\item" == "Temperature"}
      # Commands done if the synonym \item is equal to the
      # indicated text string.
    end if
If the synonym ``\item`' has the value ``Temperature`' stored in it, do the indicated code.
    if {rpn "\item" "Temperature" ==}
      # Commands done if the synonym \item
      # equals indicated text string.
    end if
As above, but using the ``rpn`' calculator (see rpn Mathematics).
    if {rpn "\item" "Temperature" !=}
      # ...
    end if
As above, but do the indicated code if ``\item`' is not equal to ``Temperature`'.