더북(TheBook)

1.4.2 문장

끝에 세미콜론이 오는 표현식들을 문장이라 한다. 다음은 문장을 나타낸 예다.

x = y + z;
y = f(x + z) * 3.5;

다음과 같은 문장은 (대부분) 쓸모가 없지만 사용할 수 있다.

y + z;

위 코드를 프로그램으로 실행하면 yz의 합을 계산한 뒤 날려버린다. 최신 컴파일러는 이러한 쓸모없는 계산을 최적화한다. 그러나 이 문장을 항상 생략할 수 있다고 보장하지는 못한다. 만약 yz가 사용자 정의 타입의 개체라면 덧셈 또한 사용자가 정의했을 것이므로 yz, 또는 다른 무언가를 변경할 수 있다. 이러한 동작은 사이드 이펙트를 숨기므로 분명히 잘못된 프로그래밍 스타일이다. 하지만 C++에서는 합법적으로 사용할 수 있다.

하나의 세미콜론은 빈 문장이다. 따라서 우리는 표현식 뒤에 원하는 만큼 많은 세미콜론을 넣을 수 있다. 일부 문장들은 세미콜론으로 끝나지 않는다. 대표적으로 함수 정의가 있다. 이러한 문장에 세미콜론을 추가하더라도 오류는 아니며 단지 여분의 빈 문장으로 인식한다. 그럼에도 불구하고 일부 컴파일러에서 엄격하게 규칙을 따르라고 지정할 경우 경고 메시지를 출력한다. 중괄호로 둘러싸인 일련의 문장도 문장이다. 이를 복합문(Compound Statement)이라고 한다.

이전에 봤던 변수와 상수 선언도 문장이다. 변수나 상수를 초기화할 때(다른 할당문이나 콤마 연산자를 제외하고) 임의의 표현식을 사용할 수 있다. 다른 문장들로는 나중에 설명할 함수와 클래스 정의, 다음 절에 설명할 제어문 등이 있다.

프로그램의 흐름은 조건 연산자를 제외하고 문장을 통해 제어한다. 이제 분기문과 반복문이 어떻게 다른지 살펴볼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.