7강부터는 C++에서 가장 많이 쓰이는 조건문 중 하나인 if문에 대해 알아보고, 또 if문과 관련된 몇가지 규칙들을 배워본 후 최종적으로는 '숫자 맞추기 게임'을 만들어 보겠습니다.
첫번째 시간엔 if, else if, else정도만 알아보고, 다음시간에 추가로 break, continue, switch까지 알아보고 난 다음 최종적으로 게임을 만들어 볼 겁니다.
개인적으로 if문 쪽이 for문을 활용해서 피라미드 게임을 만드는 것 보다는 쉬웠습니다.
아마 여러분도 대부분 그렇게 생각하리라고 봅니다.
🔶 if
if문은 "만약에 ~라면?"을 컴퓨터에게 묻는 문장입니다.
예를 들어 현실에서 우리가
“만약 오늘 비 오면 우산 챙겨야지”
라고 생각하는 것처럼
컴퓨터에게도
“만약 어떤 조건이 참이면, 이걸 실행해줘”
라고 말해주는 거죠.
🔹if문의 기본 구조
if (조건)
{
실행할 코드;
}
if문은 기본적으로 위의 코드처럼 생겼습니다.
위 코드를 해석하면
“만약 조건이 참(true)이라면, 중괄호 안의 코드를 실행해줘.”
가 됩니다.
✨ 예제 : 나이로 성인 판별하기
int age = 25;
if (age >= 20)
{
printf("성인입니다.\n");
}
else
{
printf("미성년자입니다.\n");
}
- 위에서 age라는 변수에 25를 입력해 줬습니다.
- 조건문 if에는 age >= 20을 놨죠. 이는 '만약 나이(age)가 20보다 같거나 높다면'을 뜻합니다.
- 만약 이 조건문 if가 참일 경우에는 printf를 통해 "성인입니다."가 출력되게 됩니다.
- 25는 20보다는 높으므로 age >= 20이 참이 되니, 컴퓨터는 "성인입니다."를 출력합니다.
- 만약 age가 18이었다면? 조건이 거짓 → else 쪽 "미성년자입니다."가 출력됐겠죠. else는 바로 밑에서 설명합니다.
- age가 20일때는 어떨까요?? 조건 자체가 '많거나 같을 때'이기 때문에 같은 20일때 역시 조건은 '참'이 되어 "성인입니다."가 출력되게 됩니다.
🔶 else
else는 말 그대로 영어 뜻처럼 “그 외에는~”, “그게 아니라면~” 이라는 의미를 갖고 있습니다.
else는 보통 결과가 둘 중 하나일 때 사용하게 됩니다.
예 : "정답 or 오답", "성공 or 실패", "참 or 거짓"
또, 모든 조건을 검사한 후, 나머지 모든 경우를 처리하고 싶을 때도 쓰죠.
예 : 학생 구분에서 "초, 중, 고등학생에 포함되지 않는 모든 사람" 처리하기
🔹 if와 else의 기본 구조
if (조건)
{
// 조건이 '참'일 때 실행
}
else
{
// 조건이 '거짓'일 때 실행
}
즉, 조건이 맞으면 if 블록을 실행하고, 조건이 틀리면 무조건 else 블록을 실행합니다.
다른 조건을 따지지 않고, 그냥 else 쪽으로 넘어가게 되는 것이죠.
🔶 else if
만약 조건이 하나가 아니라 여러 가지 경우로 나뉠 때는 어떻게 할까요?
예를 들어 '학생 구분하기'처럼 말이죠.
8세~13세 → 초등학생
14세~16세 → 중학생
17세~19세 → 고등학생
나머지 → 학생 아님
이렇게 조건이 여러가지 존재할 때는 if와 else 두개만으론 해결할 수 없습니다.
이 때 쓰는 게 바로 else if 입니다. else if는 여러 갈래로 조건을 나눌 때 쓰게 됩니다.
다만 else if를 알아보기 전에, 먼저 알아야 할 &&라는 것부터 다뤄보겠습니다.
🔹 &&
먼저 age라는 변수를 설정해주고, if문을 써보겠습니다. 가장 먼저 할 것은 초등학생(8~13세)입니다.
int age = 7;
if (age >= 8 && age <= 13)
{
printf("초등학생입니다.\n");
}
근데 코드를 보면 배운것과는 뭔가 조금 다르게 생겼다는 것을 알 수 있습니다.
if문 안에 조건이 한개가 아니라 두 개가 들어있고, 그 중간엔 &&라는 이상한 기호가 있습니다.
if문 안에는 조건을 하나가 아닌 두 개 이상 넣을 수 있는데, 이 때 넣는 것이 바로 &&입니다.
&&는 "그리고(and)"입니다. 우리가 말로 할 때
“나이가 8살 이상이고, 13살 이하라면 초등학생”
이렇게 ‘~이고’ 또는 ‘~이면서’ 같은 표현을 쓰죠?
이런 의미를 컴퓨터에게 전달하는 기호가 바로 &&입니다.
쉽게 코드로 표현해보자면
if (조건1 && 조건2)
// "조건1이 참이고, 조건2도 참이면 이 코드를 실행"
이렇게 이해하면 쉽습니다.
✨ 예제
한 번 아래와 같은 조건식을 해석해 보겠습니다.
age라는 변수에 10을 넣었을 때,
int age = 10;
if (age >= 8 && age <= 13)
{
printf("초등학생입니다.\n");
}
- 첫 번째 조건: age >= 8 (age가 8보다 높거나 같음) → 참
- 두 번째 조건: age <= 13 (age가 13보다 낮거나 같음) → 참
- 둘 다 참(true)이기 때문에 전체 조건이 참이 되므로 "초등학생입니다"가 출력되게 됩니다.
- 이렇게 &&는 조건식 안에 있는 것들이 모두 참이 되어야만 해당 조건문이 발동하게 됩니다.
❌ 만약 둘 중 하나가 거짓이면?
int age = 7;
if (age >= 8 && age <= 13)
{
printf("초등학생입니다.\n");
}
else
{
printf("초등학생이 아닙니다.\n");
}
- 첫 번째 조건: age >= 8 (age가 8보다 높거나 같음) → 거짓
- 두 번째 조건: age <= 13 (age가 13보다 낮거나 같음) → 참
- 하나라도 거짓(false)이면 전체 조건은 거짓이기 때문에 else문 "초등학생이 아닙니다"가 출력되게 됩니다.
- &&는 '둘 다 참이어야 참'인 조건문이기 때문입니다.
- &&와는 다르게 하나라도 참이면 참으로 판단하는 || 도 있지만, 이는 다음 시간에 다루겠습니다.
🔹초중고생 판별하기
다시 else if로 돌아와서, 초중고생을 판별해 보겠습니다.
위처럼 if로 초등학생을 설정해주고, 그 밑에 중, 고등학생은 else if를 넣어서 조건을 여러갈래로 나눠주겠습니다.
그리고 마지막으로 초중고생 모두 해당하지 않는 경우는 else로 설정하겠습니다.
int age = 15;
if (age >= 8 && age <= 13)
{
printf("초등학생입니다.\n");
}
else if (age >= 14 && age <= 16)
{
printf("중학생입니다.\n");
}
else if (age >= 17 && age <= 19)
{
printf("고등학생입니다.\n");
}
else
{
printf("초중고생은 아니네요.\n");
}
위의 코드를 한번 해석해보면
- 변수 age는 15로 설정됨
- age >= 8 && age <= 13 (age가 8보다 높거나 같다면 / 그리고 13보다 낮거나 같다면) → 거짓
- age >= 14 && age <= 16 (age가 14보다 높거나 같다면 / 그리고 16보다 낮거나 같다면) → 참
- age >= 17 && age <= 19 (age가 17보다 높거나 같다면 / 그리고 19보다 낮거나 같다면) → 거짓
- else (age가 위 세개 모두 해당하지 않는다면) → 도달하지 않음
이렇게 됩니다.
즉 "중학생입니다"가 출력되게 됩니다.
요약하자면,
if | 조건이 참이면 실행 |
else | 위 조건이 모두 거짓일 때 실행 |
else if | 중간 조건을 계속해서 나눌 때 사용 |
&& | 그리고(and)를 뜻함 |
가 됩니다.
🔶 AI피드백
Q. 오늘은 C++에서 조건문 if, else, else if, &&에 대해서 배웠어. 오늘 배운 네가지 조건문이 왜 중요한지 알 수 있어? 내가 알기로 if문이 코딩에서 굉장히 많이 쓰이고 자주 쓰이는걸로 알고있거든. 또, 이 if문이 어디에 쓰이는지도 알려줬으면 좋겠어.
마지막으로 이전에 배운 for문으로 피라미드 쌓기, 별쌓기 만드는거보단 if문이 더 쉽게 느껴졌는데, 그 이유가 뭔지도 말해줬으면 좋겠어.
A. 좋아! 아주 핵심적인 질문이자 '생각하는 개발자'의 사고야
너는 지금 단순히 코드를 "쳐보는" 게 아니라, 왜 이 문법을 배우는지, 어디에 쓰이는지, 그리고 **내가 어렵게 느끼는 이유가 뭘까?**까지 고민하고 있어.
✅ 1. 왜 if문이 그렇게 중요할까?
이유는 간단해:
프로그램은 “선택”으로 작동하기 때문이야.
💡 예시로 보자
- 게임에서 체력이 0이 되면 → "Game Over"를 보여줘야 해
- 쇼핑몰에서 장바구니가 비어있으면 → "장바구니가 비어 있습니다" 출력
- 앱에서 로그인 정보가 맞으면 → 다음 화면으로, 아니면 → "비밀번호가 틀렸습니다"
→ 이 모든 상황 판단은 if로 결정돼.
즉, if문은 프로그래밍의 “두뇌” 역할을 해
구조 | 의미 |
if | “이 조건이 참이면…” |
else | “그렇지 않다면…” |
else if | “아니고 이런 조건이면…” |
&& | 조건을 여러 개 조합할 때 사용 (그리고 조건) |
✅ 2. if문은 어디에서 쓰일까?
분야 | 활용 예 |
게임 개발 | 캐릭터 체력, 상태, 스토리 분기, 스킬 조건 등 |
앱 개발 | 로그인, 버튼 클릭 시 반응, 조건부 경고창 |
웹 개발 | 사용자의 입력값 검사, 메뉴 출력 조건 등 |
시스템 프로그래밍 | 파일이 존재하는지 여부, 권한 체크 |
하드웨어 제어 | 온도센서가 30도 이상일 때 팬 작동 |
요약하면: “조건이 있고 선택지가 필요한 곳”이라면 무조건 if문이 있어!
✅ 3. 왜 if문이 for문보다 쉽게 느껴졌을까?
항목 | for문 | if문 |
주 용도 | 반복 | 조건 판단 |
복잡도 | 흐름을 계속 반복하므로 시뮬레이션 필요 | 한 번만 실행되므로 직관적 |
난이도 체감 | 안쪽에 중첩될수록 복잡함 (별쌓기 등) | 조건이 복잡해도 로직 자체는 단순함 |
결과 예측 | 머릿속에서 여러 단계 시뮬레이션 필요 | 조건만 알면 바로 이해 가능 |
즉, for문은 "몇 번 반복되는지 상상해야 하고",
그 안에서 조건이 겹치면 혼란도가 폭발하지만,
if는 딱 보고 "이거면 이거"니까 쉽게 체감되는 거야.
🎯 정리 요약
질문 | 답 |
if문은 왜 중요한가? | 프로그램이 선택을 기반으로 작동하기 때문. 모든 판단 구조에 핵심. |
어디에 쓰이나? | 게임, 웹, 앱, 시스템 등 모든 프로그래밍 분야에서 필수 |
왜 for문보다 쉽게 느껴지나? | if문은 선형적(직선적) 사고로 흐름이 단순하지만, for문은 반복 흐름의 예측이 필요하기 때문 |
'C++ > 입문' 카테고리의 다른 글
[#9] rand, srand, #include <time.h>로 무작위 숫자 뽑기 (1) | 2025.06.11 |
---|---|
[#8] break, continue, || 에 대해서 알아보자 (0) | 2025.06.11 |
[#6] 반복문을 이용해서 피라미드 게임 만들기 (3) | 2025.06.02 |
[#5] 중첩(이중, 삼중) 반복문과 별 쌓기 (4) | 2025.05.30 |
[#4] 반복문(while, do while)에 대해 알아보자 (2) | 2025.05.29 |