midas+son의 크리에이티브(creative) 이야기

배열

공부/C#2016. 5. 4. 14:07

//배열

            //int a[10]; //c++ 에서는 이렇게만...

            //c++ 에서는 배열을 자료형의 집합 이라고 생각하면 되지만

            //C#에서는 int와 int[]를 별도의 타입으로 생각하는 것이 낫다.

            int[] aa = new int[5];  //모두 0으로 초기화 (c++에서는 쓰레기 값이 들어갔었다.)

            int[] bb = new int[5] { 10, 20, 30, 40, 50 };

            int[] cc = new[] { 10, 20, 30, 40, 50, 60, 70 };

            int[] dd = { 1, 2, 3, 4 };


            //2차원 배열

            int[,] aaa = new int[3, 2]; //int[2]가 3개 있음

            int[,] aaa2 = new int[3, 2] { { 1, 2 }, { 2, 3 }, { 3, 5 } };   //초기화

'공부 > C#' 카테고리의 다른 글

switch  (0) 2016.05.04
사칙연산  (0) 2016.05.04
데이터 타입  (0) 2016.05.04
string 처리 기본  (0) 2016.05.04
[잡담]C# 공부 첫날 소감  (0) 2016.05.03

데이터 타입

공부/C#2016. 5. 4. 14:06

//데이터 타입

            //c++이랑은 좀 차이가 있다.

            

            //string

            //c++에서는 기본적으로 없고 STL로 구현되어있다. 

            //C#에서 메모리 구조상에서 바뀌지 않는다. 새로 메모리 공간을 만든다.

            //string str = string.Format("string test : {0} {1} {0}", 10, "문자");

            //Console.WriteLine(str);


            //int형 크기, 최소값, 최대값

            //Console.WriteLine("int : {0} byte {1} ~ {2}" ,

            //    sizeof(int), int.MinValue, int.MaxValue);       //int

            Console.WriteLine("int : {0} byte {1:N} ~ {2:N}",   //N 기본 숫자 포맷팅 정수 셋째 자리마다 , 소수점아래 2자리

                sizeof(int), int.MinValue, int.MaxValue);       //int

            Console.WriteLine("uint : {0} byte {1:N} ~ {2:N}",

                sizeof(uint), uint.MinValue, uint.MaxValue);    //unsigned int

            Console.WriteLine("long : {0} byte {1:#,#} ~ {2:#,#}",  //#,#만 하면 소수점 없이 숫자 포맷 가능

                sizeof(long), long.MinValue, long.MaxValue);   //long


            //UInt16; UInt32; UInt64; //숫자 bit짜리 int;


            Console.WriteLine("decimal : {0} byte {1:#,#} ~ {2:#,#}",   //#,#만 하면 소수점 없이 숫자 포맷 가능

                sizeof(decimal), decimal.MinValue, decimal.MaxValue);   //10진수


            Console.WriteLine("byte : {0} byte {1} ~ {2}",   

                sizeof(byte), byte.MinValue, byte.MaxValue);   //byte   0 ~ 255


            Console.WriteLine("sbyte : {0} byte {1} ~ {2}",

                sizeof(sbyte), sbyte.MinValue, sbyte.MaxValue);   //sbyte -128 ~ 127


            //char

            //C#에서는 타입 체킹이 엄격하다.

            //기본적으로 unicode를 사용한다.

            //글자 하나를 받는 의미가 크다.

            char a = '글';   //그래서 한글도 들어갈 수 있다.(c++에서는 한글은 2byte가 필요한데 char는 1byte이다.)

            char b = 'a';


            Console.WriteLine("char : {0} byte {1} ~ {2}",

                sizeof(char), char.MinValue, char.MaxValue);   //char \0 ~ 0xffff


            Console.WriteLine("float : {0} byte {1} ~ {2}",

                sizeof(float), float.MinValue, float.MaxValue);   //float 


            Console.WriteLine("double : {0} byte {1} ~ {2}",

                sizeof(double), double.MinValue, double.MaxValue);   //double 


            Console.WriteLine("bool : {0} byte {1} ~ {2}",

                sizeof(bool), bool.FalseString, bool.TrueString);   //bool 


            //데이터 타입 끝

'공부 > C#' 카테고리의 다른 글

사칙연산  (0) 2016.05.04
배열  (0) 2016.05.04
string 처리 기본  (0) 2016.05.04
[잡담]C# 공부 첫날 소감  (0) 2016.05.03
정수, 실수 출력  (0) 2016.05.03

string 처리 기본

공부/C#2016. 5. 4. 14:04


            //안좋은 string 더하는 방식 - 메모리 낭비가 심함

            string str1 = "Hello";

            string str2 = "World";

            Console.WriteLine(str1 + " " + str2);


            //좋은 string 더하는 방식

            //StringBuilder builder = new StringBuilder();    //C#에서 무조건 주소만 존재한다. class는 new 안해주면 생성되지 않는다.

            StringBuilder builder = new StringBuilder(10);    //공간을 잡아주는것이 좋다. AppendFormat 기본 잡아준 공간을 넘어가면 다시 생성되어 공간 확보하므로 메모리 낭비가 될수 있다.

            builder.AppendFormat(str1);

            builder.AppendFormat(" ");

            builder.AppendFormat(str2);

            Console.WriteLine(builder.ToString());  //웬만한 타입은 String으로 변환 가능하다

            Console.WriteLine(builder); //.ToString() 생략 가능


            builder.Remove(1, 2);   //1번 인덱스 부터 2개 글자 제거

            Console.WriteLine(builder);


            //글자 뒤에 다시 타입별로 추가

            builder.AppendFormat(" {0} {1}", a, str1);  //0은 int , str1은 string

            Console.WriteLine(builder);


            Console.WriteLine("1을 입력하시오");

            string read = Console.ReadLine();

            Console.WriteLine("입력 받은 것 : " + read);//안좋은 방식이지만 사람이 쓰기엔 편하다.


            //비교

            //if( read == "1" )   

                //string 값 간의 비교는 연산이 너무 많아 진다. 

                //숫자라고 한다면 int는 값비교가 한번에 된다.

                //어지간해선 string간의 비교는 하지 말자.

            

            //들어온 숫자 string을 int형으로 변환

            int readNum =  Int32.Parse(read);   

            //숫자가 아닌것에 대해 예외처리 안되어있다. 나중에 다시 알아 보자.

            //숫자가 아니면 터진다.나중에 다시 알아 보자.


            //C#은 기본적으로 Unicode이므로 특수문자에 제약이 없다.

            if(readNum == 1)

            {

                Console.WriteLine("● 1이 입력 되었습니다.");

            }

            else

            {

                Console.WriteLine("◐ 1이 아닙니다.");

            }

'공부 > C#' 카테고리의 다른 글

배열  (0) 2016.05.04
데이터 타입  (0) 2016.05.04
[잡담]C# 공부 첫날 소감  (0) 2016.05.03
정수, 실수 출력  (0) 2016.05.03
C# 첫 경험  (0) 2016.05.03