본문 바로가기
Development/멋쟁이사자처럼 게임개발 부트캠프

[멋쟁이사자처럼 Unity 게임 부트캠프 4기] 3일차 (2) - 조건문

by jjeondeuk1008 2025. 3. 4.

[ 목차 ]


     

    오늘은 조건문에 대해서 알아보도록 한다.

     

     

    조건문은 어딜 가서 든 많이 쓰이는 만큼

    프로그래밍을 한 사람이라면 익숙할 것이다..

     

     

    나는 게임 개발 찍먹 해봤을 때 경험해 보았는데..

    알 것 같으면서도 직접 코드 짜기엔 힘들었다..

     

     

    이젠 제대로 알고 쓸 수 있겠ㅈ ㅣ..?

     

     

     


     

    1. 조건문이란? (if / else)

     

    말 그대로 어떠한 조건이 주어졌을 때 충족 여부에 따라 선택적 실행을 하고자 할 때 쓰는 문장이다.

    그러므로 조건의 결과에 따라 실행되는 게 달라지는 것이다.

     

     

     

    조건문은 if / else 를 사용하는데,

    우선 if에서의 조건을 성립하면 if 안에 있는 조건을 수행하고,

    if에서의 조건을 충족하지 못한다면 else로 넘어간다.

     

     

     

    예시로 점수를 구현하는 코드를 작성해 보았다.

     

    정수형 점수의 값을 정하고,

    점수가 90점 이상일 때는 A학점

    그렇지 않을 때는 B학점을 출력하는 코드이다.

    //조건문
    int score = 85;
    if (score >= 90) //점수가 90점 이상일 때
    {
        Console.WriteLine("A학점");
    }
    else
    {
        Console.WriteLine("B 학점");
    }
    

     

     

     

     

     

     


     

    2. 실습

     

     

    (1) 학점 점수 코드 실습

    - 점수에 따라 등급을 매기는 코드 실습

     

    if 조건이 정수형, 문자열 말고도

    참과 거짓(true / false)도 포함이 된다.

    아래의 코드에서 알 수 있는 건 연산자를 까먹으면 안 된다는 점이다.. (내가 종종 헷갈렸음)

     

    string의 변수명이 일치하면 참, 일치하지 않는다면 거짓으로

    위의 조건문과 결합한 아이디 일치 조건과 학점 점수 코드를 실습해 보았다.

    //참 거짓 조건문
    string GameID = "멋사zl존";
    
    if (GameID == "멋사zl존")
    {
        Console.WriteLine("아이디가 일치합니다."); //true = 참
    }
    else
    {
        Console.WriteLine("아이디가 일치하지 않습니다."); //flase = 거짓
    }
    
    //학점 매기기
    int score = 75;
    
    if (score >= 90)
    {
        Console.WriteLine("A 학점");
    }
    else if (score >= 80)
    {
        Console.WriteLine("B 학점");
    }
    else if (score >= 70)
    {
        Console.WriteLine("C 학점");
    }
    else
    {
        Console.WriteLine("F 학점");
    }
    

     

     

     

     

     

     

    (2) 소지금에 따른 무기 구매 및 공격력 증가 실습

    - 입력받은 소지금에 따라 무기 출력 및 공격력 증가

     

     

    우선 사용자에게 가지고 있는 소지금을 입력받는다.

    입력받는 메서드는 저번에 이진수 변환에서 찾아볼 수 있다.

    int gold = int.Parse(Console.ReadLine());

     

    정수로 변환하는 코드이다.

     

     

    그 이후 입력한 소지금에 따라 조건에 따라 세부적으로 나누어서 무기를 출력하게 되고,

    정수형 공격력의 초기값을 입력하고 무기에 따라 공격력이 추가되는 코드를 구현해 보았다.

     

    여기에서 알 수 있던 것은 if 와 else 하나만 있는 것이 아니라 else if 로 조건을 if와 else 사이에 추가할 수 있다.

    else if 는 제한 없이 무제한으로 사용이 가능해 세부적으로 나눌 때 용이하다.

    결국엔 else는 모든 조건이 아닐 때에 출력을 한다.

    Console.Write("가지고 있는 소지금을 입력하세요: ");
    int gold = int.Parse(Console.ReadLine());
    int att = 0;
    
    string GameID = "멋사검존";
    Console.WriteLine("캐릭터: " + GameID);
    
    if (gold > 600)
    {
        Console.WriteLine("무기: 전설의 검");
        att = 7;
    }
    else if (gold > 500)
    {
        Console.WriteLine("무기: 유령검");
        att = 6;
    }
    else if (gold > 400)
    {
        Console.WriteLine("무기: 엑스칼리버");
        att = 5;
    }
    else if (gold > 300)
    {
        Console.WriteLine("무기: 집판검");
        att = 4;
    
    }
    else if (gold > 200)
    {
        Console.WriteLine("무기: 진은검");
        att = 3;
    
    }
    else if (gold > 100)
    {
        Console.WriteLine("무기: 카타나");
        att = 2;
    }
    else
    {
        Console.WriteLine("무기: 무한의대검");
        att = 1;
    }
    
    Console.WriteLine("공격력: 100 + " + att);
    

     

     

     

     

     

     

    (3) 세 정수의 최댓값 구하기

    - 세 정수의 값을 사용자로부터 입력을 받고 최댓값 비교해 출력

     

     

    처음에 이 문제를 접했을 때 마땅히 떠오르진 않았다.

     

    일단 사용자로부터 입력을 받는 코드부터 생성한다.

    정수의 값이라고 했으니 정수로 변환하는 것까지 함께 한다.

    Console.Write("a의 값을 입력해주세요: ");
    int a = int.Parse(Console.ReadLine());
    Console.Write("b의 값을 입력해주세요: ");
    int b = int.Parse(Console.ReadLine());
    Console.Write("c의 값을 입력해주세요: ");
    int c = int.Parse(Console.ReadLine());

     

    이렇게 3개의 정수 값을 입력받으면

    a, b, c를 비교해야 한다.

     

     

     

    이때 조건문의 조건을 어떻게 작성해야 하는 것인가?

    논리 연산자 (&& || !) 중에 하나를 활용하면 된다.

     

    a 값이 가장 크다는 것을 알아보기 위한 조건문은

    b와 c보다 커야 한다는 것을 && 연산자를 활용해 작성한다.

    if (a > b && a > c)
    {
        Console.WriteLine("최대값 : " + a);
    }

     

     

     

     

    이렇게 활용한 전체 코드이다.

    Console.Write("a의 값을 입력해주세요: ");
    int a = int.Parse(Console.ReadLine());
    Console.Write("b의 값을 입력해주세요: ");
    int b = int.Parse(Console.ReadLine());
    Console.Write("c의 값을 입력해주세요: ");
    int c = int.Parse(Console.ReadLine());
    
    if (a > b && a > c)
    {
        Console.WriteLine("최대값 : " + a);
    }
    else if (b > a && b > c)
    {
        Console.WriteLine("최대값 : " + b);
    }
    else
    {
        Console.WriteLine("최대값 : " + c);
    }

     

     

     

     

     

     


     

     

    이렇게 가장 많이 쓰이는 조건문에 대해서 알아보았다..

    간단한 예제들과 함께 보면

     

    어? 쉬운데? 괜찮은데?

     

    하지만 응용만 들어가면 멍청해짐..

    이겨내자.... 화이띵..

     

    역시 문제를 많이 푸는 게 제일 최고인 것 같다..

     


    목차