따배씨++ (2-1. 정리하기)

김동우·2021년 2월 17일
0
  1. Expression(표현식) - Statement(명령문) ?

앞서 설명드린 수식, int y = x + 3 의 형태를 우린 Expression으로 말한다고 했습니다. 즉, 값을 가지는 하나의 수식을 표현식이라고 하는 것이죠. 말 그대로 '식'입니다. 값을 가지지 않는 선언은 표현식이 아닌 것이죠.

명령문은 식과 다르게 인간의 문자, 영어의 전치사 혹은 접속사의 형태로 선언됩니다.

우리가 12년 의무교육에서 대차게 배워온 if, else, else if, for, while, switch-case(예외) 등으로 상태를 나타낼 수 있는 하나의 문단구조입니다. 이것 외에도 그냥 작성한 코드 한 줄을 Statement라고 표현할 수 있습니다. 컴퓨터가 실행가능한 코드는 모두 Statement입니다. 이렇게 보면 굉장히 광범위한 개념이죠?

또한 Statement 코드 내에서도 다양한 Expression이 자리하고 있을 수 있습니다. 그러나, Expression의 형태로 Statement를 작성할 수는 없습니다.

int x = 2;
int y;
if(true){ //Statement
	y = x + 3; //Expression
}

이러한 형태는 가능하겠지만,

int x = 2;
int y = if(true){}

이러한 선언은 불가능합니다. 좀 극단적 예시긴 하지만, 명령문에는 value가 없기 때문에 표현식과 동일한 방식으로 변수에 할당할 수 없다는 점이 포인트입니다.

즉, if문 내에 return 10;을 작성하더라도 그것은 반환일 뿐, Statement가 값을 가지는 것이 아닙니다.

그럼 우린 이러한 개념을 집합의 형태로 표현할 수 있습니다.

Expression ⊂ Statement 의 형태로 말입니다.

  • 그렇다면 Expression은 어떠한 것들이 있을까요?

일상에서의 표현식은 수학과 밀접한 표현들이 있지만,

기본적으로 컴퓨터과학에서의 표현식(Expression)은 코드에서의 함수콜(function() 등), 변수 이름 등의 식별자, 배열 할당 연산자([]) 등의 개념들을 모두 포함하고 있습니다.

위 개념들은 차차 세부적으로 들어갈 예정입니다.

  • Statement는 말씀드렸듯 위 해당사항을 모두 포함한데에 추가적으로 변수에 단순 상수 할당, return;, if문, for문 등등 다양한 개념의 광범위한 집합입니다.
    그렇기에 명령문과 표현식의 개념은 주관이 개입된 모호한 정의를 가질 수 밖에 없습니다. 저는 이번 공부를 통해 위와 같이 생각하며 글을 작성했습니다.
    기존에 알고 계신 정보와 큰 차이가 없다면, 크게 신경쓰실 필요는 없습니다. 함수 콜을 두고 명령문이다. 라고 말씀하셔도 틀린 답이 아니기 때문입니다. 다만 이런 생각을 하는 사람도 있구나~ 하고 넘기시면 될 것 같습니다.

0개의 댓글

관련 채용 정보