7.1 Conditionals

The if statement can be used to conditionally execute a series of commands only when a certain criterion is satisfied. In its simplest form, its syntax is

if <expression> { .... }

where the expression can take the form of, for example, x<0 or y==1. Note that the operator == is used to test the equality of two algebraic expressions; the operator = is only used to assign values to variables and functions. A full list of the operators available can be found in Table 3.1. As in many other programming languages, algebraic expressions are deemed to be true if they evaluate to any non-zero value, and false if they exactly equal zero. Thus, the following two examples are entirely legal syntax, and the first print statement will execute, but the second will not:

if 2*3 {
  print "2*3 is True"
 }

if 2-2 {
  print "2-2 is False"
 }

The variables true and false are predefined constants, making the following syntax legal:

if false {
  print "Never gets here"
 }

As in C, the block of commands which are to be conditionally executed is enclosed in braces (i.e. { }). The closing brace must be on a line by itself at the end of the block, or separated from the last command in the block by a semi-colon.

if (x==0)
 {
  print "x is zero"
 }

if (x==0) { print "x is zero" ; }

After such an if clause, it is possible to string together further conditions in else if clauses, perhaps with a final else clause, as in the example:

if (x==0)
 {
  print "x is zero"
 } else if (x>0) {
  print "x is positive"
 } else {
  print "x is negative"
 }

Here, as previously, the first script block is executed if the first conditional, x==0, is true. If this script block is not executed, the second conditional, x>0, is then tested. If this is true, then the second script block is executed. The final script block, following the else, is executed if none of the preceding conditionals have been true. Any number of else if statements can be chained one after another, and a final else statement can always be optionally supplied. The else and else if statements must always be placed on the same line as the closing brace of the preceding script block.

The precise way in which a string of else if statements are arranged in a Pyxplot script is a matter of taste: the following is a more compact but equivalent version of the example given above:

if      (x==0) { print "x is zero"     ; } \
else if (x> 0) { print "x is positive" ; } \
else           { print "x is negative" ; }