본문 바로가기
프로그래밍

표현식(Expression)과 구문(Statement)을 비교해보자

by bantomak 2025. 3. 18.
반응형

표현식(Expression)과 구문(Statement), 둘이 어떻게 다른데?

표현식과 구문은 프로그래밍에서 중요한 개념이며, 헷갈릴 수 있지만 두 개념의 차이에 대해서 알아보자.

이에 대한 정리는 아래와 같다.

표현식(Expression)

  • "값을 생성하는 코드"
  • 결과적으로 어떤 값을 반환하는 코드 조각
  • 변수를 만들거나 연산을 수행할 때 사용
  • 표현식 자체가 값이 될 수 있으므로, 다른 표현식 안에 포함될 수 있다.
6
3 + 4
0 < 1
"hello"

구문(Statement)

  • "어떤 동작을 수행하는 코드"
  • 프로그램의 흐름을 제어하거나 특정 작업을 수행하는 코드 조각
  • 값을 직접 반환하지 않고, 실행하는 것이 목적
x = 10  # 변수 할당 (구문)
if x > 5: # 조건문 (구문 + 표현식)
	print("x는 5보다 큽니다.")  # 실행문 (구문)

조건문의 예를 보자면, if 문은 말 그대로 구문이며 그 뒤에 오는 조건에는 표현식이 들어간다.

표현식 vs 구문

정리하자면

  • 표현식(Expression)은 값을 만들고, 구문(Statement)은 동작을 수행한다.
  • 표현식은 값이 될 수 있지만, 구문은 실행만 하고 값을 가지지 않는다.

표현식은 구문의 부분집합이라는 주장

구글 검색을 하다 보니 표현식이 구문의 부분집합이라는 의견이 있었다.

  • 모든 표현식은 구문으로 사용할 수 있다. => x = 3 + 5에서 3 + 5는 표현식이지만, 전체 줄이 할당 구문(Assignment Statement)이므로 표현식을 구문의 일부로 볼 수 있다.
  • 하지만, 모든 구문이 표현식이 될 수는 없다. => if문, while문, for문과 같은 제어 흐름 구문은 값을 반환하지 않으므로 표현식이 될 수 없다.

위에 논리대로라면 "표현식이 구문의 부분집합이다."라는 주장은 성립한다고 볼 수 있다.

함께 읽으면 좋은 글

 

문 스타일(statement style) vs 식 스타일(expression style)

문 스타일(statement style) 결과를 도출하기보다 행위를 정의하는 것은 명령형 프로그래밍(Imperative Programming) 기법의 하나다. 즉, 컴퓨터에게 무엇을 해야 할지 이야기하는 방식으로 소스 코드를 이

jettstream.tistory.com

댓글