본문 바로가기
척척학사/프로그래밍 언어론

문장

by 학사쟁이 2023. 11. 9.
반응형

선언문과 실행문

문장은 처리를 나타내는 표현으로 데이터 처리를 위해 연산, 변수, 서브프로그램을 이용한다. 이러한 문장은 선언문과 실행문이 있다.

선언문

변수나 서브프로그램이 이용할 수 있도록 준비한다. 

이때 변수 선언문은 변수명, 타입 등을 바인딩하는 것이고

서브프로그램 선언문은 서브프로그램의 프로토콜을 명시한다.

실행문

변수, 서브프로그램 등을 이용하여 데이터를 처리한다. 실행문은 대입문제어문으로 구분한다.

 

대입문은 변수의 값을 변경하는 의미이다. 따라서 프로그램에서 가장 자주 사용되는 문장이다. 대입문을 만들려면 대입연산자를 이용하 한다. A = 1;이라는 대입문이 있다면 5라는 정수를 변수명 A에 저장을 하는 실행이 이루어진다.

예시와 같이 대입연산자의 오른쪽 값을 왼쪽 변수의 값으로 대입하고 언어마다 대입연산자는 다른데 =, := , MOVE TO 등이 있다.

 

이러한 대입문은 C, C++, Java 같은 경우 수식의 끝에 쌍반점(;)을 찍으면 문장이 된다.

ex) A = 1 까지는 수식 A = 1; 문장

 

하나의 값을 여러 변수에 대입하는 것을 다중 대입문이라고 하는데, 이때 대입 연산자의 특성이 활용된다.

우결합, 대입한 값이 수식의 값 이란 특성을 활용한다.

ex) A = B = C = 1;

 

그리고 C++ 같은 경우 조건 연산자를 이용해서 대입문을 만들 수 있다.? :

값이 대입될 변수를 조건에 따라 선택하여 대입한다.

ex) (cond? t : f) =5; cond이 참이라면 t에 5를 대입하고 거짓이라면 f에 5를 대입해라.\

 

C, C++, Java에서는 복합 대입 연산자를 사용한다. 산술연산자와 대입연산자가 결합된 것이다.

연산자 의미
+= 변수의 현재 값에 더한 값을 대입
-= 변수의 현재 값에서 뺀 값을 대입
*= 변수의 현재 값에 곱한 값을 대입
/= 변수의 현재 값에 나눈 값을 대입
%= 변수의 현재 값을 나눈 나머지 값을 대입
>>= 변수의 현재 값을 오른쪽으로 비트 단위 시프트한 값을 대입
<<= 변수의 현재 값을 왼쪽으로 비트 단위 시프트한 값을 대입

 

단항 대입 연산자

++ : 피연산자가 가진 값에 1을 더한 값을 대입

a++;   =    a+=1;    =    a = a+1;

 

대입문에서 서로 타입이 다를 때 타입의 변환은 대입할 값의 타입과 변수의 타입이 서로 일치하지 않을 수 있기에 필요한데

int i 가 있고 여기에 i=1.5로 해서 실수형을 대입한다면 이때 묵시적 타입변환과 명시적 타입변환이 있다.

 

묵시적 타입변환은 값의 타입을 변수의 타입으로 변환하여 대입대입하는 것으로 C, C++는 확대 변환 및 축소변환이 가능하다. 하지만 Java 같은 경우 확대 변환만 가능하다. 즉 왼쪽에 있는 정수 i에 실수 1.5를 한다는 것은 축소이기에 자바에서는 위예는 되지 않는다.

 

명시적 타입변환은 값의 타입을 프로그래머가 명시한 타입으로 변환한다. 이는 확대변환과 축소 변환이 모두 가능하다. 또한 추가적으로 명시적 타입을 했지만 추가로 묵시적 타입 변환이 필요하기도 하다.

 

제어문

프로그램의 수행 흐름을 제어하고 제어문은 조건문과 반복문으로 구분된다.

 

조건문

조건에 따라 서로 다른 처리를 처리하도록 제어하는 문장으로 대표적인 조건문은 if문이다.

 

if문은 조건이 참일 경우에만 then 다음의 문자를 수행한다.

else가 있는 경우, 조건이 거짓인 경우에만 else 다음의 문장을 수행한다.

이러한 if문도 언어에 따라서 표현방법이 다양한데, 요즘은 then은 잘 쓰이지 않고 참일 경우 실행할 것과 거짓이라면 else를 사용하는 방법이 주로 쓰인다.

 

switch문

조건값에 따라 모두 다르게 처리할 수 있다.

switch ( ) { case 0 :...... default:..} 

스위치 문은 else if문과 같은 기능을 할 수 있다.

 

반복문

원하는 문장을 반복해서 수행하도록 제어하는 문장

 

for문

제어변수를 초기값부터 종료값까지 증가분만큼씩 늘리면서 원하는 문장을 반복수행

for(i=0; i <100;i++) {... )

 

while문

조건이 참인동 안에 반복해서 수행하고 반복 횟수는 0번 이상이다. 

while ( max> min ) 

max--;

이라면 max가 min보다 크다면 1을 줄여준다.

 

do-while문

while문과 다른 점은 무조건 1번 이상반복한다.

do

max--;

while(max > min)

char *loop(char *b, char *a){
char *s = b;
while(*b++ = *a++)
;
return s;
}

 

 

 

 

 

반응형

'척척학사 > 프로그래밍 언어론' 카테고리의 다른 글

프로그래밍언어론 수식  (0) 2023.11.06
복합타입  (0) 2023.11.04
프로그래밍 언어 타입  (1) 2023.10.28
프로그래밍 언어론 변수의 영역  (1) 2023.10.24
변수와 바인딩  (0) 2023.10.12