초코의 풀스택 도전기 17: 조건문과 반복문으로 흐름을 제어하다
"멘토님, 프로그램을 만들다 보니까 상황에 따라 다른 동작을 해야 할 때가 많은데, 어떻게 해야 하죠?"
초코는 자바스크립트를 공부하다가 궁금증이 생겨 멘토에게 물었다.
"좋은 질문이야, 초코! 자바스크립트에는 그런 문제를 해결하는 데 아주 유용한 도구들이 있어. 바로 조건문과 반복문이지." 멘토는 미소를 지으며 설명을 시작했다. "조건문을 사용하면 '이 조건이 맞으면 이렇게 하고, 그렇지 않으면 저렇게 해'라는 흐름을 만들 수 있고, 반복문을 사용하면 똑같은 일을 여러 번 반복할 수 있지. 오늘은 이 두 가지를 함께 살펴보자."
조건문: 상황에 맞춰 행동하자
멘토는 노트북 화면에 간단한 예시를 띄웠다. "예를 들어, 어떤 날씨에 따라 다른 메시지를 출력하는 프로그램을 만들어볼까?"
let temperature = 30;
if (temperature > 25) {
console.log("오늘은 더운 날입니다.");
} else if (temperature < 15) {
console.log("오늘은 추운 날입니다.");
} else {
console.log("오늘은 적당한 날씨입니다.");
}
"여기서 temperature라는 변수는 현재 온도를 저장하고 있어. if문을 통해, 만약 온도가 25도보다 높으면 '오늘은 더운 날입니다.'라는 문구가 출력돼. 하지만 온도가 25도 이하라면 다음 조건, 즉 temperature < 15를 확인해서, 온도가 15도보다 낮을 경우에는 '오늘은 추운 날입니다.'라고 알려주지. 만약 이 두 조건 모두 맞지 않으면 마지막 else가 실행돼서 '오늘은 적당한 날씨입니다.'라는 메시지가 나와."
초코는 고개를 끄덕였다. "그러니까 if는 참일 때 실행하고, else if는 추가로 조건을 검사하고, else는 나머지 경우를 처리하는 거군요."
멘토는 계속해서 설명을 이어갔다. "맞아, 여러 개의 조건이 있을 때는 이렇게 else if를 사용할 수 있어. 하지만 조건이 너무 많아지면 코드가 지저분해질 수 있어. 그럴 때는 switch문을 사용하는 게 더 깔끔할 수 있지."
switch문: 여러 경우의 수를 깔끔하게 처리하기
멘토는 switch문 예시를 보여주었다.
let day = 4;
switch (day) {
case 1:
console.log("월요일입니다.");
break;
case 2:
console.log("화요일입니다.");
break;
case 3:
console.log("수요일입니다.");
break;
case 4:
console.log("목요일입니다.");
break;
case 5:
console.log("금요일입니다.");
break;
default:
console.log("주말입니다.");
}
"여기서는 day라는 변수를 확인하고 있어. 그 값에 따라 case마다 다른 메시지를 출력하지. day 값이 1이면 월요일이 출력되고, 4면 목요일이 출력돼. 만약 day 값이 1부터 5 사이에 해당하지 않으면 default에서 '주말입니다.'가 출력되지."
"우와, 이건 훨씬 깔끔하고 이해하기도 쉽네요!" 초코는 감탄했다.
"그렇지? 여러 조건을 처리해야 할 때는 switch문이 아주 유용해. 하지만 조건이 단순할 때는 if-else문도 여전히 자주 사용되니까 상황에 맞춰 적절히 선택하면 돼."
반복문: 같은 일을 여러 번 해야 할 때
"그럼 반복문은 어떻게 쓰나요?" 초코는 조건문에 대한 궁금증을 풀자 이제 반복문에 대해 알고 싶어졌다.
멘토는 화면에 또 다른 예시를 띄웠다. "반복문은 우리가 같은 일을 여러 번 해야 할 때 사용해. 가장 기본적인 반복문 중 하나가 for문이야. 이건 반복할 횟수를 미리 알고 있을 때 특히 유용하지."
for (let i = 0; i < 5; i++) {
console.log(`초코, 이건 ${i + 1}번째 반복이야!`);
}
초코는 코드를 읽어보며 이해하려고 노력했다. "여기서 i라는 변수가 0부터 시작해서 5보다 작을 때까지 반복하는 거죠?"
멘토는 고개를 끄덕였다. "맞아! i++는 i 값을 하나씩 증가시키는 거야. 처음에는 i가 0이니까 '1번째 반복'이 출력되고, 그 다음에는 i가 1이 돼서 '2번째 반복'이 출력되지. 이렇게 해서 5번째 반복이 끝나면 더 이상 조건이 맞지 않아서 반복이 멈추는 거지."
"아하, 반복할 횟수가 정해져 있을 때는 정말 유용하겠어요!" 초코는 이해한 듯 고개를 끄덕였다.
while문: 조건이 맞을 때까지 반복하기
멘토는 이어서 while문을 설명했다. "이번에는 while문을 살펴보자. 이 반복문은 조건이 참일 때만 계속 실행돼."
let count = 0;
while (count < 3) {
console.log(`초코, ${count + 1}번째 반복 중이야!`);
count++;
}
"여기서는 count가 3이 되기 전까지 계속 반복하지. count++로 값을 하나씩 늘리면서 반복 조건을 계속 확인하는 거야. count가 3이 되면 더 이상 조건이 맞지 않으니까 반복이 끝나지."
"그러니까 while문은 조건이 참일 때만 계속 실행되는 거군요." 초코는 금방 이해했다.
do-while문: 최소 한 번은 실행되는 반복문
"그런데, 조건이 처음부터 거짓이면 반복이 아예 실행되지 않을 수도 있잖아요?" 초코가 물었다.
"맞아, 그래서 do-while문이라는 것도 있어. 이 반복문은 조건을 나중에 확인하기 때문에, 처음부터 조건이 맞지 않더라도 최소 한 번은 실행돼."
let num = 5;
do {
console.log(`현재 숫자는 ${num}입니다.`);
num--;
} while (num > 0);
"여기서 num이 처음에 5니까 무조건 한 번은 '현재 숫자는 5입니다.'가 출력되지. 그런 다음 num--로 숫자를 줄이고, 그 후 조건을 확인해서 반복할지 말지를 결정해."
"우와, 조건을 나중에 확인하는 구조라니 신기해요!" 초코는 이제 반복문에 대한 개념을 확실히 이해한 것 같았다.
마무리하며
조건문과 반복문을 배우고 나니, 초코는 프로그램의 흐름을 자유롭게 제어할 수 있을 것 같은 자신감이 생겼다. 이제 상황에 맞춰 적절한 코드를 실행하고, 필요한 만큼 반복할 수 있게 되었다.
"오늘 배운 내용은 자바스크립트뿐만 아니라 거의 모든 프로그래밍 언어에서 기본적이면서 중요한 개념이야. 앞으로 다양한 문제를 해결하는 데 큰 도움이 될 거야." 멘토는 초코에게 격려의 말을 건넸다.