일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DFS
- DFS(Depth First Search)
- 백준 17608번
- 동적 프로그래밍(Dynamic Programming)
- 이분 그래프(Bipartite Graph)
- 백준 2812번
- 그리디 알고리즘(Greedy Algorithm)
- BFS(Breadth First Search)
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 그래프(Graph)
- 백준 9012번
- DFS & BFS
- 위상 정렬(Topological Sort)
- 분할 정복(Divide and Conquer)
- 큐(Queue)
- 이분 탐색(Binary Search)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- 백준 1707번
- BFS
- 위상 정렬(Topology Sort)
- 백준 1948번
- 백준 10000번
- 백준 18352번
- 알고리즘 개념
- 트리(Tree)
- 스택(Stack)
- 백준 2493번
- 백준 2261번
- 백준 21606번
- 백준 2504번
- Today
- Total
Always Be Wise
조건문 본문
조건문에는 if 문과 switch 문이 있다. if 문은 가장 기본적인 조건문으로 아래와 같이 if와 else if, else로 구성되며
특정 조건을 만족하면 해당 조건에 해당하는 내용을 실행하는 형태로 구성된다.
#include <stdio.h>
int main()
{
int num;
printf("아무 숫자나 입력해주세요. : ");
scanf("%d", &num);
if(0 < num)
{
printf("num은 양수입니다.");
}
else if(num < 0)
{
printf("num은 음수입니다.");
}
else
{
printf("num은 0입니다.");
}
return 0;
}
switch 문은 if 문과 마찬가지로 조건을 체크하고 그 케이스를 실행한다. 단, if 문처럼 관계식을 쓰지는 못하고 특정한 정수값이나
문자만을 확인할 수 있다. 실수 값일 경우 오류가 발생한다. 또한, if 문처럼 하나하나 조건을 체크하면서 내려가는 것이 아니라
입력받은 값의 케이스로 바로 이동한다. 그렇기 때문에 if 문보다 빠르다.
switch(기준값)
{
case 비교값1:
기준값과 비교값1이 같을 때 실행
break
case 비교값2:
기준값과 비교값2가 같을 때 실행
break
default:
기준값과 비교값들이 같지 않을 때 실행
break
}
if 문에서 else를 써도 되고 안 써도 상관없듯이, default 역시 선택적으로 사용하면 된다. default도 else와 같은 역할로,
값에 해당되는 케이스가 하나도 없으면 실행되는 조건이다. 다만 주의할 것은 case마다 break가 있다는 것이다.
break
for 문이나 while문과 같은 반복문은 종결 조건이 될 때까지 계속해서 반복문을 수행한다. 그런데 break를 사용하면, 종결 조건을
만족하지 않았는데도 반복문을 빠져나올 수 있다.
#include <stdio.h>
int main()
{
int num=5;
for(int i=0; i<10; i++)
{
printf("%d ", i);
if(i == num)
{
break;
printf("반복문을 빠져나가자!");
}
}
return 0;
}
1부터 10까지 출력하는 간단한 코드다. 하지만 조건문 안에 break를 사용하면 해당 조건을 만족했을 때 반복문을 빠져나간다.
따라서 위의 코드 중 "반복문을 빠져나가자!"라는 문구는 출력되지 않는다.
continue
continue는 반복문에서 특정 조건에 해당하는 경우 continue 아래 코드를 생략하고 다음 반복을 실행하고자 할 때 사용한다.
#include <stdio.h>
int main()
{
for(int i=0; i<10; i++)
{
if(i%2 == 0)
{
continue;
}
printf("%d ", i);
}
return 0;
}
위의 코드에서 i가 2인 짝수인 경우, continue가 실행되어 아래 출력문은 건너뛰고 바로 다음 반복으로 넘어 간다.