본문 바로가기

:SERVER/C#(C Sharp)

분기문(if문, switch문, 삼항연산자)

반응형

1. 분기문
 - if문
 - switch문
 - 삼항연산자

using System;

namespace CSharp {
    class Program{
        // Main function
        static void Main(string[] args) {
            // 분기문
            int hp = 100;
            bool isDead = (hp<=0);
            // if-else문
            if (isDead) {
                Console.WriteLine("you are dead_1");
                Console.WriteLine("you are dead_2");
            } else {
                Console.WriteLine("you are alive");
            }

            // if-elseif문
            int choice = 0; // 0:가위 1:바위 2:보
            if (choice == 0) {
                Console.WriteLine("가위입니다");
            } else if (choice == 1) {
                Console.WriteLine("바위입니다");
            } else {
                Console.WriteLine("보입니다");
            }

            // switch문
            switch (choice) {
                case 0:
                    Console.WriteLine("가위입니다");
                    break;
                case 1:
                    Console.WriteLine("바위입니다");
                    break;
                case 2:
                    Console.WriteLine("보입니다");
                    break;
                default:
                    Console.WriteLine("해당사항 업습니다");
                    break;
            }
            
            // 삼항연산자
            int number = 23;
            bool isPair;

            if((number%2)==0){
                isPair = true;
            } else {
                isPair = false;
            }

            isPair = (number%2)==0 ? true : false;
            // -------------------------------------------------------------------------------------
            // 가위바위보 게임
            // 0:가위, 1:바위, 2:보
            // 컴퓨터가 랜덤으로 가위바위보 중에 하나를 생성            
            Random rand = new Random();
            int aiChoice=rand.Next(0,3); // 0~2사이의 랜덤 값 0,1,2 중에 하나의 값

            // 유저가 입력하는 값을 받아옴
            int choice = Convert.ToInt32(Console.ReadLine());

            // 결과 출력
            // switch문
            switch (choice) {
                case 0:
                    Console.WriteLine("당신의 선택은 가위입니다");
                    break;
                case 1:
                    Console.WriteLine("당신의 선택은 바위입니다");
                    break;
                case 2:
                    Console.WriteLine("당신의 선택은 보입니다");
                    break;
                default:
                    Console.WriteLine("당신의 선택은 올바른 입력값이 아닙니다");
                    break;
            }  
            switch (aiChoice) {
                case 0:
                    Console.WriteLine("컴퓨터의 선택은 가위입니다");
                    break;
                case 1:
                    Console.WriteLine("컴퓨터의 선택은 바위입니다");
                    break;
                case 2:
                    Console.WriteLine("컴퓨터의 선택은 보입니다");
                    break;
                default:
                    Console.WriteLine("컴퓨터의 선택은 올바른 입력값이 아닙니다");
                    break;
            }
            // 승리 무승부 패배 표시 - 방법 1
            if(choice==0){
                switch (aiChoice) {
                    case 0:
                        Console.WriteLine("무승부");
                        break;
                    case 1:
                        Console.WriteLine("패배");
                        break;
                    case 2:
                        Console.WriteLine("승리");
                        break;
                }
            } else if(choice==1){
                switch (aiChoice) {
                    case 0:
                        Console.WriteLine("승리");
                        break;
                    case 1:
                        Console.WriteLine("무승부");
                        break;
                    case 2:
                        Console.WriteLine("패배");
                        break;
                }
            } else { 
                switch (aiChoice) {
                    case 0:
                        Console.WriteLine("패배");
                        break;
                    case 1:
                        Console.WriteLine("무승부");
                        break;
                    case 2:
                        Console.WriteLine("승리");
                        break;
                }
            }

            // 승리 무승부 패배 표시 - 방법 2
            if (choice == aiChoice) {
                Console.WriteLine("무승부");
            } else {
                switch(choice) {
                    case 0:
                        aiChoice==1?Console.WriteLine("패배"): Console.WriteLine("승리");                            
                        break;
                    case 1:
                        aiChoice==0?Console.WriteLine("승리"): Console.WriteLine("패배");
                        break;
                    case 2:
                        aiChoice==0?Console.WriteLine("패배"): Console.WriteLine("승리");
                        breeak;
                }
            }

            // 승리 무승부 패배 표시 - 방법 3
            if (choice == aiChoice) {
                Console.WriteLine("무승부");
            } else if((choice==0&&aiChoice==2) || (choice==1&&aiChoice==0) || (choice==2&&aiChoice==1)) {
               Console.WriteLine("승리");
            } else {
                Console.WriteLine("패배");
            }
            
        }
    }
}

 

2. 상수와 열거형

using System;

namespace CSharp {
    class Program{

        // 열거형
        enum CHOICE {
            ROCK=1,
            PAGER=2,
            SCISSORS=0
        }


        // Main function
        static void Main(string[] args) {
            // 상수
            const int SCISSORS = 0; //가위
            const int ROCK = 1; //바위
            const int PAPER = 2; //보
            // 상수값은 다시 할당이 되지않는다   

            int choice = 0;
            switch(choice) {
                case (int)CHOICE.ROCK:
                    break;
                case (int)CHOICE.PAGER:
                    break;
                case (int)CHOICE.SCISSORS:
                    break;
            }

            switch(choice) {
                case ROCK:
                    break;
                case PAGER:
                    break;
                case SCISSORS:
                    break;
            }
        }
    }
}
반응형

':SERVER > C#(C Sharp)' 카테고리의 다른 글

클래스, 생성자, static  (0) 2022.09.16
스택,힙 메모리, 클래스  (0) 2022.09.16
함수, ref, out  (0) 2022.09.15
반복문  (0) 2022.09.14
C# 변수, 문자열  (0) 2022.09.14