If Statement (The GNU Awk User’s Guide)
Next: While Statement, Up: Statements [Contents][Index]
7.4.1 The if-else Statement
The if
-else
statement is awk
’s decision-making statement. It looks like this:
if (condition) then-body [else else-body]
The condition
is an expression that controls what the rest of the statement does. If the condition
is true, then-body
is executed; otherwise, else-body
is executed. The else
part of the statement is optional. The condition is considered false if its value is zero or the null string; otherwise, the condition is true. Refer to the following:
if (x % 2 == 0) print "x is even" else print "x is odd"
In this example, if the expression ‘x % 2 == 0
’ is true (i.e., if the value of x
is evenly divisible by two), then the first print
statement is executed; otherwise, the second print
statement is executed. If the else
keyword appears on the same line as then-body
and then-body
is not a compound statement (i.e., not surrounded by braces), then a semicolon must separate then-body
from the else
. To illustrate this, the previous example can be rewritten as:
if (x % 2 == 0) print "x is even"; else print "x is odd"
If the ‘;
’ is left out, awk
can’t interpret the statement and it produces a syntax error. Don’t actually write programs this way, because a human reader might fail to see the else
if it is not the first thing on its line.