DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gawk) Increment Ops

Info Catalog (gawk) Assignment Ops (gawk) Expressions (gawk) Truth Values
 
 Increment and Decrement Operators
 =================================
 
    "Increment" and "decrement operators" increase or decrease the value
 of a variable by one.  You could do the same thing with an assignment
 operator, so the increment operators add no power to the `awk'
 language; but they are convenient abbreviations for very common
 operations.
 
    The operator to add one is written `++'.  It can be used to increment
 a variable either before or after taking its value.
 
    To pre-increment a variable V, write `++V'.  This adds one to the
 value of V and that new value is also the value of this expression.
 The assignment expression `V += 1' is completely equivalent.
 
    Writing the `++' after the variable specifies post-increment.  This
 increments the variable value just the same; the difference is that the
 value of the increment expression itself is the variable's _old_ value.
 Thus, if `foo' has the value four, then the expression `foo++' has the
 value four, but it changes the value of `foo' to five.
 
    The post-increment `foo++' is nearly equivalent to writing `(foo +=
 1) - 1'.  It is not perfectly equivalent because all numbers in `awk'
 are floating point: in floating point, `foo + 1 - 1' does not
 necessarily equal `foo'.  But the difference is minute as long as you
 stick to numbers that are fairly small (less than 10e12).
 
    Any lvalue can be incremented.  Fields and array elements are
 incremented just like variables.  (Use `$(i++)' when you wish to do a
 field reference and a variable increment at the same time.  The
 parentheses are necessary because of the precedence of the field
 reference operator, `$'.)
 
    The decrement operator `--' works just like `++' except that it
 subtracts one instead of adding.  Like `++', it can be used before the
 lvalue to pre-decrement or after it to post-decrement.
 
    Here is a summary of increment and decrement expressions.
 
 `++LVALUE'
      This expression increments LVALUE and the new value becomes the
      value of the expression.
 
 `LVALUE++'
      This expression increments LVALUE, but the value of the expression
      is the _old_ value of LVALUE.
 
 `--LVALUE'
      Like `++LVALUE', but instead of adding, it subtracts.  It
      decrements LVALUE and delivers the value that results.
 
 `LVALUE--'
      Like `LVALUE++', but instead of adding, it subtracts.  It
      decrements LVALUE.  The value of the expression is the _old_ value
      of LVALUE.
 
Info Catalog (gawk) Assignment Ops (gawk) Expressions (gawk) Truth Values
automatically generated byinfo2html