개발공부

C# 기초 자료형

파란색까마귀 2022. 2. 13. 21:51

2016. 2. 23. 19:04

https://blog.naver.com/nagne2011/220635962629

 

 

 class Program
    {
        static void Main(string[] args)
        {
            //Console.Write( ); = 엔터키를 안먹이고 출력
            //Console.WriteLine( ); = 엔터키를 먹이고 출력 // =Console.Write(\n);
 
            string str = string.Format("{0} {1} {0}", 10,20);
            Console.WriteLine(str);
 
            Console.WriteLine("int {0} byte", sizeof(int)); //int형의 사이즈를 확인가능
            Console.WriteLine("{0} ~ {1}", int.MinValue, int.MaxValue); //int형의 최소, 최대확인가능
            /*4자리씩 찎기
             Console.WriteLine("{0:N} ~ {1:N}", int.MinValue, int.MaxValue);
            */
            
            //mecimal형의 사이즈를 확인가능 128bit다
            Console.WriteLine("decimal {0} byte : {1} ~ {2}", 
                sizeof(decimal), decimal.MinValue, decimal.MaxValue); 
 
            //byte형의 사이즈를 확인가능
            Console.WriteLine("byte {0} btye : {1} ~ {2}",
                sizeof(byte), byte.MinValue, byte.MaxValue);
 
            //sbyte형의 사이즈를 확인가능
            Console.WriteLine("sbyte {0} btye : {1} ~ {2}",
                sizeof(sbyte), sbyte.MinValue, sbyte.MaxValue);
 
            //char a = 'a'; //멀티바이트라면 영문만 입력가능하지만, C#은 유니코드 기반이라 한글도 입력 가능
            char a = '한';
            //char형의 사이즈를 확인가능
            Console.WriteLine("char {0} btye : {1} ~ {2}",
                sizeof(char), char.MinValue, char.MaxValue);
 
            //float형의 사이즈를 확인가능
            Console.WriteLine("float {0} btye : {1} ~ {2}",
                sizeof(float), float.MinValue, float.MaxValue);
 
            //double형의 사이즈를 확인가능
            Console.WriteLine("double {0} btye : {1} ~ {2}",
                sizeof(double), double.MinValue, double.MaxValue);
 
            //bool형의 사이즈를 확인가능
            Console.WriteLine("bool {0} btye : {1} ~ {2}",
                sizeof(bool),true, false);
 
 
            int[] aa = new int[5] { 1, 2, 3, 4, 5 };
            int[] bb = new int[5];
            int[] cc = new[] { 1, 2, 3, 4, 5, 6, 7 };
            int[] dd = { 1, 2, 3, 4, 5 };
 
 
            //퍼센트 연산
            int aaa = 32;
            int bbb = 5;
            Console.WriteLine("{0} % {1} = {2}", aaa, bbb, aaa % bbb); //int 뿐만 아니라
 
            float ccc = 3.14f;
            float ddd = 0.7f;
            Console.WriteLine("{0} % {1} = {2}", ccc, ddd, ccc % ddd); // float형식도 가능
 
 
            //연산 순서 tnstj
            int n0 = 10;
            int n1 = n0;
            Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
            n1 = n0++;
            Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
            n1 = ++n0;
            Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
 
 
            //switch //ans
            int switchNum = 10;
            //string 넣을수 있다.
            // int switchStr = 개구리;
            switch(switchNum)
            {
                case 0:
                    break;
                case 10:
                    break;
 
            }
 
            //비트연산자
            int bitA = 4;
            int bitB = 2;
            Console.WriteLine("{0} & {1} = {2}", 
                Convert.ToString(bitA,2),
                Convert.ToString(bitB, 2),
                Convert.ToString(bitA & bitB, 2));
 
            Console.WriteLine("{0} & {1} = {2}",
                Convert.ToString(bitA, 2),
                Convert.ToString(bitB, 2),
                Convert.ToString(bitA | bitB, 2));
 
            //qlxm vmfform
            int sword = 0x0001; //0x 는 16진수 라는 뜻 2진수로 표현 시 : 0000 0000 0000 0001
            int staff = 0x0002;                                        //0000 0000 0000 0010
            int axe = 0x0004;                                          //0000 0000 0000 0100
            int bow = 0x0008;                                          //0000 0000 0000 1000
            int spear = 0x0010;                                        //0000 0000 0001 0000
            //이때, 비트 플래그 순서에 유의한다
            //int next = 0x0020;
            //int next = 0x0040;
            //int next = 0x0080;
            //int next = 0x0100;
 
            int weaponUsable = sword | axe | spear; //사용 가능한 무기 전체
            //0001
            //0011
            //0111
 
            if ((weaponUsable & staff) != 0)
            {
                Console.WriteLine("스태프 사용 가능");
            }
            else Console.WriteLine("스태프 사용 불가능");
 
            if ((weaponUsable & axe) != 0)
            {
                Console.WriteLine("도끼 사용 가능");
            }
            else Console.WriteLine("도끼 사용 불가능");
 
            //사용 가능한 무기 제외하기
            weaponUsable = weaponUsable & (~axe);   //도끼 제외
 
            if ((weaponUsable & axe) != 0)
            {
                Console.WriteLine("도끼 사용 가능");
            }
            else Console.WriteLine("도끼 사용 불가능");
 
            //사용 가능한 무기 추가하기
            weaponUsable = weaponUsable | axe;   //도끼 추가
 
            if ((weaponUsable & axe) != 0)
            {
                Console.WriteLine("도끼 사용 가능");
            }
            else Console.WriteLine("도끼 사용 불가능");
 
 
            //단위 이동
            int value = 5; //0000 0000 0000 0000 0000 0000 0000 0101 (2)
            value = value << 2;
            //대략 한칸 이동할때마다 2배Tlr 늘어난다고 보면 된다 //곱연산 보다 fast
           
            Console.WriteLine("valsue = {0}", value);
            //value = 0000 0000 0000 0000 0000 0000 0001 0100 (2);
 
            //반대도 된다
            value = value << 2;
            Console.WriteLine("valsue = {0}", value);
            //value = 0000 0000 0000 0000 0000 0000 0000 0010 (2);
 
 
            /*실습*/
           //int sword = 0x0001;
           //int staff = 0x0002;
           //int axe = 0x0004;
           //int bow = 0x0008;
           //int spear = 0x0010;
           //zd
           //int weaponUsable = 0x0000;
 
            Console.WriteLine("---===<< Class Info >>===---");
            Console.WriteLine("| Warrior | weapon : sword, axe, spear ");
            Console.WriteLine("| Mage    | weapon : staff, spear ");
            Console.WriteLine("| Rogue   | weapon : sword, bow ");
            Console.Write("Pleas Select Class... : ");
            int player = Int32.Parse(Console.ReadLine());
            Console.Write("\n");
 
            switch (player)
            {
                case 1:
                    Console.WriteLine("Select Class is 'Warrior'..!");
                    weaponUsable = sword | axe | spear;
                    break;
                case 2:
                    Console.WriteLine("Select Class is 'Mage'..!");
                    weaponUsable = staff | spear;
                    break;
                case 3:
                    Console.WriteLine("Select Class is 'Rogue'..!");
                    weaponUsable = sword | bow;
                    break;
                default:
                    Console.WriteLine("Miss Select..!");
                    Console.WriteLine("Select Class is 'Warrior'..!");
                    weaponUsable = sword | axe | spear;
                    break;
 
            }
 
            Console.WriteLine("--==<< state >>==--");
            if ((weaponUsable & sword) != 0)
            {
                Console.WriteLine("enable 'sword'");
            }
            else Console.WriteLine("disable 'sword'");
 
            if ((weaponUsable & staff) != 0)
            {
                Console.WriteLine("enable 'staff'");
            }
            else Console.WriteLine("disable 'staff'");
 
            if ((weaponUsable & axe) != 0)
            {
                Console.WriteLine("enable 'axe'");
            }
            else Console.WriteLine("disable 'axe'");
 
            if ((weaponUsable & bow) != 0)
            {
                Console.WriteLine("enable 'bow'");
            }
            else Console.WriteLine("disable 'bow'");
 
            if ((weaponUsable & spear) != 0)
            {
                Console.WriteLine("enable 'spear'");
            }
            else Console.WriteLine("disable 'spear'");
 
            //while문
            int i = 0;
            while (i < 10)
            {
                ++i;
                Console.WriteLine("while : {0}", i);
            }
            i = 0;
            do
            {
                ++i;
                Console.WriteLine("while : {0}", i);
            }
            while (i < 10);
 
            //for문
            int[] testArray = new int[10];
            for (int j = 0; j < 10; j++)//이때, int i로 할수없다 위에서 사용했기때문. 즉 지역변수 사용X
            {
                testArray[j] = j+1;
                Console.WriteLine("For : {0}", j);
            }
 
 
                Console.ReadLine();
            Console.ReadLine();
        }
    }

 

728x90

'개발공부' 카테고리의 다른 글

c# try-catch  (0) 2022.02.13
c# 함수 상속  (0) 2022.02.13
c# 함수 기초  (0) 2022.02.13
벡터, 행렬  (0) 2022.02.13
자료구조  (0) 2022.02.13