증가/감소 연산자란 변수와 연산자를 결합하여 일정한 수를 증가 또는 감소하는 특수한 연산 처리입니다.
이 특수한 연산자는 피연산자
를 더하거나 빼는 등의 단항연산
을 수행합니다.
증감 연산자는 명령형 프로그래밍 언어들은 공통적으로 구현되여 있습니다.
|문법|
변수명 연산자
or
연산자 변수명
증감연산자를 처음으로 도입된 것은 1996년 B언어에 켄 톰프슨
이 처음으로 도입되어 사용되었다고 합니다.
B/C언어에 문법적으로 파생된 언어들 대부분이 증가연산자는 ++
로, 감소 연산자는 --
로 사용됩니다.
후순위 증가 연산자란 연산자 기호가 변수명 뒤쪽에 있는 경우를 말합니다.
대표적으로 가장 많이 사용하는 타입이기도 합니다.
$i++
은 $i = $i + 1
과 같은 의미입니다.
즉 변수명 뒤에 붙은 ++ 기호는 변수에 1을 더한다는 의미입니다.
예제 파일) inc-01.php
<?php
$i = 0;
echo "연산자 실행 전 ";
echo "i = $i <br>";
echo "연산자 실행 후 ";
$i++;
echo "i = $i <br>";
?>
결과
연산자 실행 전 i = 0
연산자 실행 후 i = 1
증가 값이 1 이외의 설정 방법은 변수명 += 증가값;
으로 작성하면 됩니다.
$i += 2; // 2씩 증가합니다.
$i += 5; // 5씩 증가합니다.
$i += 10; // 10씩 증가합니다.
예제 파일) inc-02.php
<?php
$i = 0;
echo "연산자 실행 전 ";
echo "i = $i <br>";
echo "연산자 2 실행 후 ";
$i += 2;
echo "i = $i <br>";
echo "연산자 3 실행 후 ";
$i += 3;
echo "i = $i <br>";
echo "연산자 10 실행 후 ";
$i += 10;
echo "i = $i <br>";
?>
결과
연산자 실행 전 i = 0
연산자 2 실행 후 i = 2
연산자 3 실행 후 i = 5
연산자 10 실행 후 i = 15
++
값이 1씩 증가하는 방식이라면, --
는 1씩 감소합니다.
$i--
은 $i = $i - 1
과 같은 의미입니다.
즉 변수명 뒤에 붙은 --
기호는 변수에 1
을 감소한다는 의미입니다.
예제 파일) inc-03.php
<?php
$i = 0;
echo "연산자 실행 전 ";
echo "i = $i <br>";
echo "연산자 실행 후 ";
$i--;
echo "i = $i <br>";
?>
결과
연산자 실행 전 i = 0
연산자 실행 후 i = -1
증가 값이 1 이외의 설정 방법은 변수명 -= 증가값;
으로 작성하면 됩니다.
$i -= 2; // 2씩 감소합니다.
$i -= 5; // 5씩 감소합니다.
$i -= 10; // 10씩 감소합니다.
예제 파일) inc-04.php
<?php
$i = 0;
echo "연산자 실행 전 ";
echo "i = $i <br>";
echo "연산자 2 실행 후 ";
$i -= 2;
echo "i = $i <br>";
echo "연산자 3 실행 후 ";
$i -= 3;
echo "i = $i <br>";
echo "연산자 10 실행 후 ";
$i -= 10;
echo "i = $i <br>";
?>
결과
연산자 실행 전 i = 0
연산자 2 실행 후 i = -2
연산자 3 실행 후 i = -5
연산자 10 실행 후 i = -15
증가 연산자의 선순위와 후순위의 차이점은 증가 값의 변화가 변수 사용 전에 변경이 되는지 사용 후에 변경이 되는지의 차이입니다.
예제 파일) inc-05.php
<?php
echo "후순의 증가 <br>";
$i = 0;
echo $i++;
echo "<br>";
echo $i++;
echo "<br>";
echo "선순의 증가 <br>";
$j = 0;
echo ++$j;
echo "<br>";
echo ++$j;
?>
결과
후순의 증가
0
1
선순의 증가
1
2
위의 예를 보면 후순위 증가 방식은 $i의 값을 한 번 사용하고 ++
로 1의 값이 증가합니다.
따라서 첫 번째 출력은 0
이 출력되고 나서 1
이 증가됩니다.
반면에 선순위 방식은 $i앞
에 ++
가 붙었기 때문에 $i
를 사용하기 전에 1을 증가 후 변수의 값이 사용됩니다.
선순위 감소 또한 --
값이 변수명 앞뒤 위치에 따라서 감소 값의 적용 차이가 발생합니다.
예제 파일) inc-06.php
<?php
echo "후순의 감소 <br>";
$i = 0;
echo $i--;
echo "<br>";
echo $i--;
echo "<br>";
echo $i;
echo "<br>";
echo "선순의 감소 <br>";
$j = 0;
echo --$j;
echo "<br>";
echo --$j;
echo "<br>";
echo $j;
?>
결과
후순의 감소
0
-1
-2
선순의 감소
-1
-2
-2
위의 예제를 보면 후순위일 때는 변수를 참조 후에 값이 변경됩니다.
먼저 0
을 출력 후 -1
로 변경되고, -1
로 출력 후 -2
로 변경됩니다. 따라서 마지막 세 번째 출력도 -2
가 출력됩니다.
선순위일 때는 먼저 값이 변경되어 -1
이 출력되고, 두 번째도 값이 변경된 후에 -2
가 출력됩니다.
그래서 마지막 세 번째는 그냥 값의 변경됨 없이 -2
가 출력됩니다.
++
는 += 2
와 값이 증가 값을 변경할 수 있었습니다.
++
와 --
이외에,
*= $a = $a * 값;
/= $a = $a / 값;
%= $a = $a % 값;
형태를 이용하여 다른 산술 연산자와 결합하여 처리할 수도 있습니다.