일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- libft
- While
- else if
- 2차원배열
- phpmyadmin
- 42서울
- cout
- C++
- ft_server
- 동적할당
- Class
- 42
- iF
- vs코드 단축키
- nginx
- 42Seoul
- 구조체
- 자료형
- for
- 패킹
- 42cursus
- 포인터
- Double
- C언어
- list
- python
- 함수
- float
- docker
- jupyter 단축키
- Today
- Total
Developer
3.(C++) 제어문 본문
다른언어를 배우지 않고 처음 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;
}
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;
}
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개 이상의 조건을 검사해야 할 때 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;
}
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;
}
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;
}
범위 기반 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;
}
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 |