자바 프로그램은 main() 메소드의 시작 중괄호 "{" 에서 끝 중괄호 "}"까지 위에서부터 아래로 순차적으로 실행된다. 하지만 이러한 실행 흐름을 개발자가 원하는 대로 제어할 수 있는 기능이 필요하다. 이를 가능하게 해주는 것이 바로 제어문이다. 제어문을 통해 프로그램의 실행 흐름을 조건에 따라 분기하거나, 반복할 수 있다.
제어문은 조건식과 중괄호 {} 블록으로 구성된다. 조건식의 결과에 따라 블록 내부의 실행 여부가 결정되며, 조건식이 참(true)인지 거짓(false)인지에 따라 실행 흐름이 바뀐다. 제어문의 종류는 크게 다음과 같다:
제어문 블록이 완료된 후 실행 흐름이 다시 제어문의 시작으로 돌아갈지, 또는 정상적인 코드 흐름으로 복귀할지는 제어문의 종류에 달려 있다. 조건문은 조건이 맞을 때만 실행되며, 반복문은 조건이 맞는 한 계속해서 반복한다. 이러한 반복 동작을 루핑(looping)이라고 한다.
제어문은 다른 제어문 내부에 포함될 수 있어 복잡한 실행 흐름을 만들어낼 수 있다. 예를 들어, if문 안에 for문이나 while문을 포함하여 다중 조건을 적용하는 것이 가능하다.
if문은 특정 조건이 참일 때만 블록 내부의 코드를 실행한다.
if (조건식) {
// 조건이 참일 때 실행할 코드
}
예제:
int score = 93;
if(score >= 90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}
중괄호 {}의 중요성: 블록 내에 실행문이 하나만 있을 때 중괄호를 생략할 수 있지만, 중괄호를 생략하면 가독성이 떨어지고, 의도하지 않은 오류가 발생할 수 있다. 다음 예제는 중괄호 생략으로 인한 오류를 보여준다.
if(score < 90)
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다."); // 항상 실행됨
조건이 참일 때와 거짓일 때 각각 다른 코드를 실행하고 싶다면 if-else문을 사용한다.
사용법:
if (조건식) {
// 조건이 참일 때 실행할 코드
} else {
// 조건이 거짓일 때 실행할 코드
}
여러 조건을 평가해야 할 때는 else if문을 추가하여 다양한 조건에 맞춰 실행 코드를 분기할 수 있다.
사용법:
if (조건식1) {
// 조건식1이 참일 때 실행할 코드
} else if (조건식2) {
// 조건식2가 참일 때 실행할 코드
} else {
// 위의 모든 조건이 거짓일 때 실행할 코드
}
여러 경우의 수에 따라 실행 흐름을 분기할 때는 switch문을 사용한다. switch문은 특정 값에 따라 분기할 때 유용하다.
사용법:
switch (변수) {
case 값1:
// 값1일 때 실행할 코드
break;
case 값2:
// 값2일 때 실행할 코드
break;
default:
// 모든 경우가 일치하지 않을 때 실행할 코드
}
break문을 사용하여 각 case가 끝난 후 빠져나가도록 한다. default는 모든 경우가 일치하지 않을 때 실행된다.
for문은 반복 횟수가 정해져 있을 때 사용하며, 일반적으로 카운터 변수를 이용해 반복을 제어한다.
사용법:
for (초기화; 조건식; 증감식) {
// 반복 실행할 코드
}
예제:
for (int i = 0; i < 5; i++) {
System.out.println("i의 값: " + i);
}
while문은 조건식이 참일 동안 반복 실행하며, 반복 횟수가 정해져 있지 않을 때 유용하다.
while (조건식) {
// 조건이 참일 때 반복할 코드
}
예제:
int count = 0;
while (count < 5) {
System.out.println("count의 값: " + count);
count++;
}
do-while문은 한 번은 반드시 실행하고, 이후 조건에 따라 반복을 결정하는 반복문이다.
break문: 반복문을 중단하고 반복문 밖으로 나간다.
continue문: 반복문 내에서 남은 코드를 건너뛰고 다음 반복을 실행한다.
예제:
for (int i = 0; i < 5; i++) {
if (i == 3) {
break; // i가 3일 때 반복문을 중단
}
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue; // i가 3일 때 현재 반복을 건너뜀
}
System.out.println(i);
}
- 결론
제어문은 자바 프로그램의 실행 흐름을 유연하게 제어할 수 있게 해준다. if, switch, for, while과 같은 제어문을 통해 조건에 따른 분기와 반복이 가능하며, 이를 적절히 활용하여 원하는 논리 흐름을 구현할 수 있다.
- 제어문의 활용은 코딩의 기본이자 필수적이므로, 다양한 예제를 통해 실습하고 체득하는 것이 중요한 것 같다.