제어문이란 조건문과 반복문을 통틀어서 말하는 것이다.
일반적으로 코드의 흐름은 위에서 아래로 순차적으로 실행된다. 하지만 제어문을 사용하면 코드의 흐름을 원하는 방향으로 바꿀 수 있다.
제어문은 조건문(if
문, switch
문)과 반복문( for
문, while
문, do while
문)으로 분류된다.
if (조건식) {
조건식이 참일 때 실행
}
else {
조건식이 거짓일 때 실행
}
if문의 ( )
안에는 boolean
값으로 평가될 수 있는 조건식을 작성하고, { }
안에는 조건식이 참이거나 거짓일 때 실행하고자 하는 코드를 작성한다.
if (조건식1) {
조건식1이 참일 때 실행
}
else if (조건식2) {
조건식1이 거짓이면서 조건식2가 참일 때 실행
}
else {
조건식1과 2가 모두 거짓일 때 실행
}
switch문은 if문처럼 조건식이 true
일 때가 아닌, 변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.
if문은 경우의 수가 많아질 수록 if-else를 반복해야 하기에 코드가 복잡해지는데, switch문은 변수의 값에 따라 실행문이 결정되어 같은 기능의 if문보다 코드가 간결할 수 있다.
for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.
for문과 while문은 서로 변환이 가능하다. 주로 반복횟수를 알고 있을 때 for문을 사용하고, 조건에 따라 단복할 때 while문을 사용한다.
do-while문은 조건식에 의해 반복 실행한다는 점은 while문과 동일하다.
while문은 조건식을 검사해 블록 내부를 실행할지 결정하지만, 블록 내부의 실행문을 우선적으로 실행시키고 실행 결과에 따라 반복 실행을 계속 할지 결정하기도 한다.
do {
(1. 실행문) //처음은 무조건 실행
} while (2. 조건식);
do-while문은 실행될 때 첫 번째 실행문을 먼저 실행한 다음, 조건식을 평가한다. 그 결과가 true
이면 실행문 → 조건식 순으로 반복 실행을 한다. false
면 do-while문을 종료한다.
continue문과 break문의 차이는 반복문의 종료 여부다.
break문은 반복문인 for, whilem do-while문을 실행 중지할 때 사용한다. switch문에서도 break를 사용해 실행을 중지한다.
반복문이 중첩되어 있는 경우, break문은 가장 가까운 반복문만 종료한다.
continue문은 반복문인 for, whilem do-while문 사용된다. 블록 내부에서 continue문이 실행되면 for문의 증감문이나 while, do-while문의 조건식으로 이동하여 작동한다.