본문 바로가기
C#

상수와 열거형

by Mostlove 2023. 7. 2.
728x90
반응형

상수 (const)

ex1)

namespace CSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            const int ROCK = 1; 
            const int PAPER = 2;
            const int SCISSORS = 0;

            Random rand = new Random();
            int aiChoice = rand.Next(0, 3);//0~2 사이의 랜덤 값

            int choice = Convert.ToInt32(Console.ReadLine());
            switch (choice)
            {
                case SCISSORS:
                    Console.WriteLine("당신의 선택은 가위입니다.");
                    break;
                case ROCK:
                    Console.WriteLine("당신의 선택은 바위입니다.");
                    break;
                case PAPER:
                    Console.WriteLine("당신의 선택은 보입니다.");
                    break;
            }
            switch (aiChoice)
            {
                case SCISSORS:
                    Console.WriteLine("AI의 선택은 가위입니다.");
                    break;
                case ROCK:
                    Console.WriteLine("AI의 선택은 바위입니다.");
                    break;
                case PAPER:
                    Console.WriteLine("AI의 선택은 보입니다.");
                    break;
            }
            // 승리 무승부 패배 
            if (choice == aiChoice)
            {
                Console.WriteLine("무승부입니다.");
            }
            else if (choice == ROCK && aiChoice == SCISSORS)
            {
                Console.WriteLine("승리입니다.");
            }
            else if (choice == SCISSORS && aiChoice == PAPER)
            {
                Console.WriteLine("승리입니다.");
            }
            else if (choice == PAPER && aiChoice == ROCK)
            {
                Console.WriteLine("승리입니다.");
            }
            else
            {
                Console.WriteLine("패배입니다.");
            }

        }
    }
}

열거형 (enum)

ex2)

namespace CSharp
{
    class Program
    {
        enum Choice
        {
            SCISSORS, ROCK, PAPER
        }
        static void Main(string[] args)
        {

            Random rand = new Random();
            int aiChoice = rand.Next(0, 3);//0~2 사이의 랜덤 값

            int choice = Convert.ToInt32(Console.ReadLine());
            switch (choice)
            {
                case (int)Choice.SCISSORS:
                    Console.WriteLine("당신의 선택은 가위입니다.");
                    break;
                case (int)Choice.ROCK:
                    Console.WriteLine("당신의 선택은 바위입니다.");
                    break;
                case (int)Choice.PAPER:
                    Console.WriteLine("당신의 선택은 보입니다.");
                    break;
            }
            switch (aiChoice)
            {
                case (int)Choice.SCISSORS:
                    Console.WriteLine("AI의 선택은 가위입니다.");
                    break;
                case (int)Choice.ROCK:
                    Console.WriteLine("AI의 선택은 바위입니다.");
                    break;
                case (int)Choice.PAPER:
                    Console.WriteLine("AI의 선택은 보입니다.");
                    break;
            }
            // 승리 무승부 패배 
            if (choice == aiChoice)
            {
                Console.WriteLine("무승부입니다.");
            }
            else if (choice == (int)Choice.ROCK && aiChoice == (int)Choice.SCISSORS)
            {
                Console.WriteLine("승리입니다.");
            }
            else if (choice == (int)Choice.SCISSORS && aiChoice == (int)Choice.PAPER)
            {
                Console.WriteLine("승리입니다.");
            }
            else if (choice == (int)Choice.PAPER && aiChoice == (int)Choice.ROCK)
            {
                Console.WriteLine("승리입니다.");
            }
            else
            {
                Console.WriteLine("패배입니다.");
            }

        }
    }
}

반응형

'C#' 카테고리의 다른 글

For문  (0) 2023.07.02
While(반복문)  (0) 2023.07.02
가위 바위 보 게임!!  (0) 2023.07.02
분기문 (If/else if/else/switch/ 삼항연산자)  (0) 2023.07.02
논리연산  (0) 2023.07.01