The *nudge operators* can be used to [[increment?]] or [[decrement?]] the value of their [[operand?]]s, depending on which operator is used. The *increment operator* (nudge up), is represented by a [[plusplus?]] symbol and the *decrement operator* (nudge down), is represented by a [[doubledash?]] symbol. The nudge operators modify their [[operand?]]s, so the [[operand?]]s must be [[variable_name?]]s:

number++ # increment
number-- # decrement

## Nudge operators can exhibit pre-nudge or post-nudge behaviour

The nudge operators can exhibit pre-nudge or post-nudge behaviour, depending on whether they are placed to the left or to the right of their [[operand?]]s.

### prenudge behaviour

If the operator is used before a variable name, the operator exhibits pre-nudge behaviour and the variable is changed, before the [[expression?]] is evaluated.

# preincrement
number = 5
result = ++number # result is 6 and number is 6
# predecrement
number = 5
result = --number # result is 4 and number is 4

### postnudge behaviour

If the operator is used after the variable name, the operator exhibits post-nudge behaviour and the variable is changed after the [[expression?]] has been evaluated:

# postincrement
number = 5
result = number++ # result is 5 but number is 6
# postdecrement
number = 5
result = number-- # result is 5 but number is 4

## Nudging floating point values

When used against floating point values, the nudge operators will attempt to add or subtract one to obtain a return value:

number = 5.4
result = ++number # result is 6.4
number = 0.4
result = --number # result is -0.6

## Nudging strings

### Numerical strings will evaluated as traditional numerical values

In awk, numerical strings will evaluated as normal numeric values within an expression, so the nudge operators will return appropriate results:

number = "1"
result = ++number # result is 2
number = "0"
result = --number # result is 1
number = "-0.4"
result = --number # result is -1.4

### Non numerical strings will be nudged as a zero

Non numerical strings will evaluated as zero within a numeric expression, and the nudge operators will return a value relative to that:

string = "abc"
result = ++string # 1
string = "abc"
result = --string # -1