CodeGym /행동 /C# SELF /조건문: if else

조건문: if else

C# SELF
레벨 3 , 레슨 1
사용 가능

1. if else

프로그램이 외부 상황이 어떻게 바뀌든 항상 똑같은 일만 한다면 별로 쓸모가 없겠지. 프로그램은 다양한 상황에 맞춰서 어떤 때는 이걸 하고, 또 어떤 때는 저걸 할 수 있어야 해.

C#에서는 이걸 조건문이라는 특별한 키워드로 구현해. 조건의 참/거짓에 따라 서로 다른 명령 블록을 실행할 수 있게 해주는 거야.

조건문은 세 부분으로 이루어져 있어: 조건, 명령1, 그리고 명령2. 조건이 참이면 명령1이 실행되고, 아니면 명령2가 실행돼. 명령들은 절대 동시에 실행되지 않아. 이 문법의 기본 형태는 이래:

if (조건)
   명령1;
else
   명령2;
조건문 if-else

if는 "만약에", else는 "그렇지 않으면"이란 뜻이야. 자연스럽게 말하면 이렇게 쓸 수 있어:

만약에 조건이 참이면,
   명령1;
그렇지 않으면
   명령2;
조건문 if-else 자연어 버전

예시:

//화면에 출력: 너 아직 아이야

int age = 17;
if (age < 18)
   Console.WriteLine("너 아직 아이야");
else
   Console.WriteLine("넌 이제 어른이야");
//화면에 출력: 따뜻해

int temperature = 5;
if (temperature < 0)
   Console.WriteLine("밖에 추워");
else
   Console.WriteLine("따뜻해");
//화면에 출력: 운전면허 시험 볼 수 있어

int age = 18;
if (age == 18)
   Console.WriteLine("운전면허 시험 볼 수 있어");
else
   Console.WriteLine("차 살 돈 모아야 해");

2. 명령 블록

조건이 참이거나 거짓일 때 여러 개의 명령을 실행하고 싶으면, 그 명령들을 명령 블록으로 묶을 수 있어.

명령들을 블록으로 묶으려면 중괄호로 감싸면 돼. 일반적으로 이렇게 써:

{
   명령1;
   명령2;
   명령3;
}

블록 안에는 명령이 몇 개든 들어갈 수 있어. 심지어 0개도 가능해.

if-else와 명령 블록을 같이 쓰는 예시:

//화면에 출력: 너 아직 아이야. 어른한테 말대꾸하지 마

int age = 17;
if (age < 18)
{
   Console.WriteLine("너 아직 아이야");
   Console.WriteLine("어른한테 말대꾸하지 마");
}
else
{
   Console.WriteLine("넌 이제 어른이야");
   Console.WriteLine("요즘 젊은이들 참...");
}
//화면에 출력: 따뜻해

int temperature = 5;
if (temperature < 0)
{
   Console.WriteLine("밖에 추워");
   Console.WriteLine("모자 써라");
}
else
   Console.WriteLine("따뜻해");
//빈 명령 블록이 실행됨. 화면에 아무것도 안 나옴.

int age = 21;
if (age == 18)
   Console.WriteLine("군대 가세요");
else
{
}

3. if 문 간단히 쓰기

else 블록에 코드가 없으면 그냥 생략해도 돼. 그러면 if 문은 이렇게 돼:

if (조건)
   명령1;
조건문 if

예시:

int age = 19;
if (age >= 18)
{
    Console.WriteLine("성인입니다!");
}

어떻게 동작하냐면?

조건이 참이면 코드 블록이 실행돼. 거짓이면 아무 일도 안 일어나고 프로그램은 그냥 다음으로 넘어가.

else 블록이 있긴 한데, 중괄호 안에 아무 명령도 없으면 그냥 빼도 돼. 프로그램 동작엔 아무 차이 없어.

4. 조건 조합하기: else if

가끔은 단순히 "예/아니오"가 아니라 여러 가지 중에서 골라야 할 때가 있어. 이럴 때 else if가 등장하지:

if (조건1)
{
    // 조건1이 참이면 실행
}
else if (조건2)
{
    // 조건2가 참이고, 조건1은 거짓일 때 실행
}
else
{
    // 위 조건들 중 아무것도 아니면 실행
}

예시:

int hour = 13;
if (hour < 12)
{
    Console.WriteLine("좋은 아침!");
}
else if (hour < 18)
{
    Console.WriteLine("좋은 오후!");
}
else
{
    Console.WriteLine("좋은 저녁!");
}

여기서 무슨 일이 일어나냐면?

  • 12시 전이면 — 아침.
  • 12시부터 18시까지 — 오후.
  • 그 이후면 — 저녁.
  • 프로그램은 오직 하나만 골라서 실행해! 조건이 맞으면 나머지는 아예 검사도 안 해.

5. 도식적 설명: 분기 다이어그램

이걸 다이어그램으로 그리면 이렇게 돼:

조건이 여러 개일 때는 이렇게:

이거 완전 TRPG에서 갈림길 만나는 거랑 비슷하지? 왼쪽 가면 이거, 오른쪽 가면 저거, 직진하면 또 다른 거!

6. 어떤 조건을 검사할 수 있을까?

if 뒤의 괄호 안에는 논리식이 들어가야 해 — 결과가 true 아니면 false가 나오는 거지.

주요 비교 연산자:

연산자 의미 예시
== 같다 x == 5
!= 같지 않다 x != 10
> 크다 x > 0
< 작다 age < 18
>= 크거나 같다 score >= 100
<= 작거나 같다 count <= 50

조건 예시:

if (number == 10)
if (age != 18)
if (temperature > 36)
if (balance <= 0)

참고: = (하나)은 대입이고, == (두 개)은 비교야. 이거 헷갈려서 실수하는 초보 진짜 많아! 만약 이렇게 쓰면:

if (x = 5) // 오류!

— 컴파일러가 바로 에러 내줄 거야. 아주 잘하는 거지.

7. 조건에서 문자열 다루기

숫자뿐만 아니라 문자열도 비교할 수 있어:

string password = Console.ReadLine();
if (password == "qwerty")
{
    Console.WriteLine("로그인 성공!");
}

주의: C#에서 ==로 문자열 비교하면 일반적인 경우엔 문자열 내용(값) 자체를 비교하니까 잘 동작해. (객체 참조만 비교하는 게 아님) 문자열 메서드랑 로케일 관련 특성은 나중에 더 자세히 다룰 거야.

8. 팁과 주의사항:

중괄호: 꼭 써야 할까?

ifelse 뒤에 명령이 하나만 있으면 중괄호 생략해도 돼:

if (age > 18)
    Console.WriteLine("18살 넘었네!");

// 하지만 항상 중괄호 쓰는 게 더 안전해:
if (age > 18)
{
    Console.WriteLine("18살 넘었네!");
}

팁: 항상 중괄호 쓰는 습관 들여. 코드 늘릴 때 실수 방지에 최고야.

논리적 실수: 조건문 조심!

이렇게 쓰면:

if (age > 18)
    Console.WriteLine("18살 넘었네!");
    Console.WriteLine("환영합니다!");

컴파일러는 이렇게 읽어:

if (age > 18)
{
    Console.WriteLine("18살 넘었네!");
}

Console.WriteLine("환영합니다!");

두 번째 줄은 항상 실행돼 — 둘 다 "분기" 안에 넣으려면 중괄호 꼭 써야 해.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION