Developer

3.(C++) 제어문 본문

Programming Language/C++

3.(C++) 제어문

DPhater 2020. 8. 1. 22:36

다른언어를 배우지 않고 처음 C++을 접하는 것이라면 이 글을 읽기전에 C언어 카테고리의 10.연산,연산자 / 12. 논리 연산자,비트 연산자를 읽고오길 바란다.

if문, switch문, while문, for문은 C에서의 사용법과 모두 같으므로 간단하게 예시코드와 주석으로 설명하겠다. 더 궁금한사람은 C언어 글에서 찾아볼 수 있으니 참고하자!

if 단독 사용

#include<iostream>

using namespace std;

int main(){
	int a=4;      //정수형 변수 a를 4로 초기화 
	int b=2;      //정수형 변수 b를 2로 초기화 
	if(a>b){      //만약 a가 b보다 크다면 아래의 코드를 수행  
		cout<<"a가 더 큽니다.";   
	}
	return 0;
}

코드1 실행 결과

if문 조건문은 if괄호에 작성 된 조건이 참일 때 다음 중괄호(블록)에 있는 코드를 수행한다. 코드1과 같이 수행할 코드가 한 줄이라면 중괄호는 생략해도 된다.

if 와 else사용

#include<iostream>

using namespace std;

int main(){
	int a=4;      //정수형 변수 a를 4로 초기화 
	int b=8;      //정수형 변수 b를 8로 초기화 
	if(a>b){      //만약 a가 b보다 크다면 아래의 코드를 수행  
		cout<<"a가 더 큽니다.";   
	}
	else{         //if 조건이 거짓이라면  
		cout<<"b가 더 큽니다.";
	}
	return 0;
}

코드2 실행 결과

else는 바로 이전의 if의 조건이 거짓일 때 아래의 중괄호의 코드를 수행한다. else도 마찬가지로 수행 할 코드가 한 줄이라면 중괄호 생략이 가능하다. 또한 else는 if없이 단독으로 사용될 수 없다.

else if

#include<iostream>

using namespace std;

int main(){
	int a=4;      //정수형 변수 a를 4로 초기화 
	int b=4;      //정수형 변수 b를 4로 초기화 
	if(a>b)      //만약 a가 b보다 크다면 아래의 코드를 수행  
		cout<<"a가 더 큽니다.";   	
	else if(a<b)         //if 조건이 거짓이고, b가 a보다 크다면
		cout<<"b가 더 큽니다.";	
	else                 //모든 조건이 거짓일때
		cout<<"a와 b는 같습니다.";	
	return 0;
}

코드3 실행 결과

3개 이상의 조건을 검사해야 할 때 else if를 사용할 수 있다.

switch

#include<iostream>

using namespace std;

int main(){
	int a=3;      //정수형 변수 a를 3 으로초기화 
	switch(a){         
		case 1:         //a가 1일때 
			cout<<"a는 1입니다.";
			break;
		case 2:        //a가 2일때
			cout<<"a는 2입니다.";
			break;
		case 3:        //a가 3일때
			cout<<"a는 3입니다.";
			break;
		default:       //모든 case문과 일치하지 않을 때
			cout<<"a는 1,2,3이 아닙니다.";
			break;
	}
	return 0;
}

코드4 실행 결과

switch는 괄호에 넣어준 정수형 수식을 case절들과 비교해 일치하면 해당 case를 수행하고 break를 만나 switch문을 빠져나온다. 정수형에 대해서만 동작하며, break를 작성해 주지 않는다면 break를 만날 때 까지 모든 코드가 수행된다는 것에 유의하자. 또한 default는 생략 가능하다.

for

#include<iostream>

using namespace std;

int main(){
	for(int i=0;i<3;i++){
		cout<<i<<"번째"<<endl;
	}
	return 0;
}

코드5 실행 결과

for문은 (초기식, 조건식, 변화식)의 구성을 가진다. 위의 코드는 정수형 변수 i를 선언하며 0으로 초기화 하고, 해당 i가 3보다 작을 때 까지 블록의 코드를 수행하고, i를 하나 증가시키는 코드이다. C와 다르게 C++에서는 for문 내부에 변수 선언이 가능하다.

for(범위 기반)

#include<iostream>

using namespace std;

int main(){
	int arr[]={1,2,3,4,5};
	for(int i:arr){
		cout<<i<<endl;
	}
	return 0;
}

코드6 실행 결과

범위 기반 for문은 컨테이너의 각 요소를 순서대로 접근할 수 있다. 위의 코드에서는 i에 arr배열의 0번 요소부터 4번 요소까지 저장되에 출력하는것이다. i에 배열의 값을 저장해 사용하므로 i의 값을 바꾼다고 배열의 값이 바뀌지는 않는다. 만약 배열의 요소를 변경하고 싶다면 레퍼런스(&)를 사용해야한다.

선언되는 i의 자료형은 요소의 자료형과 같아야하며 auto를 사용하면 편하게 사용 가능하다. auto는 자동으로 타입을 작성해준다.

while

#include<iostream>

using namespace std;

int main(){
	int i=0; 
	while(i<4){
		cout<<i<<endl;
		i++;
	}
	return 0;
}

코드7 실행 결과

 

while은 다음 괄호에 오는 조건이 참이면 블록의 코드를 수행한다. for문과 다르게 변화식(증감식)을 블록내부에 작성해 주어야하며, 만약 작성하지 않을 시 무한루프에 빠지게 된다. do while문도 있으니 궁금하다면 C언어 글을 참고하자.

'Programming Language > C++' 카테고리의 다른 글

6.(C++) 구조체  (0) 2020.08.01
5.(C++) 함수  (0) 2020.08.01
4.(C++) 레퍼런스 (Reference)  (0) 2020.08.01
2.(C++) 입출력 및 자료형  (0) 2020.08.01
1.(C++) Hello World!  (0) 2020.08.01
Comments