24.1 괄호 사용하기
먼저 35 + 1 * 2를 C 언어에서 계산해보겠습니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.
no_bracket.c
#include <stdio.h> int main() { int num1; num1 = 35 + 1 * 2; // 1 * 2가 먼저 계산되므로 35 + 2가 됨 printf("%d\n", num1); // 37 return 0; }
실행 결과
37
연산자 우선순위에 따라 곱셈이 덧셈보다 우선하므로 1 * 2가 먼저 계산되어 37이 나옵니다. 기본적으로 계산식은 우선순위가 높은 연산자가 가장 먼저 계산되고, 결합 방향에 따라 순서대로 계산됩니다. +, *는 결합 방향이 →이므로 왼쪽에서 오른쪽 순으로 계산됩니다.
그럼 35 + 1이 먼저 계산되게 하려면 어떻게 해야 할까요?
bracket.c
#include <stdio.h> int main() { int num1; num1 = (35 + 1) * 2; // 괄호를 사용하여 35 + 1을 먼저 계산한 뒤 2를 곱함 printf("%d\n", num1); // 72 return 0; }
실행 결과
72
연산자 우선순위가 낮지만 먼저 계산해야 할 식은 ( ) (괄호)로 묶어줍니다. 즉, (35 + 1) * 2는 35 + 1이 먼저 계산되어 36이되고 2를 곱하여 72가 나옵니다.
여기서 괄호를 사용한 계산식의 계산 순서는 다음과 같습니다.
- 괄호를 사용한 연산자
- 우선순위가 높은 연산자
- 결합방향에 따라 순서대로 계산(+, *는 왼쪽에서 오른쪽)
보통 계산식의 의도를 명확하게 나타내기 위해 우선순위가 높은 연산자라도 괄호로 묶어줄 때가 많습니다.
num1 = 35 + (1 * 2);
괄호는 여러 번 겹쳐서 사용해도 됩니다. 계산 결과는 달라지지 않지만 복잡한 식의 가독성을 높이기 위해 주로 사용합니다.
num1 = ((35 + 1) * 2);