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 [[operator]]s 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 }}}
Summary:
This change is a minor edit.
Username: