1. 조건문을 사용한 다양한 응용

  • DateTime.Now. 의 멤버

    Year, Month, Day, Hour, Minute, Second

 

  • String.Contains() 메서드

  • Bool string.Contains(string value)

  • 이문자열 내에서 지정한 System.String 개체가 발생하는지 여부를 나타내는 값 반환

    즉 어떤 문자열에 해당 문자열이 들어 있는지 검색하고 참 거짓 반환

String hello = “Hello”;

If(hello.Contains(“He”))

{

      Console.WriteLine(“true”);

}

 

  • 키입력 구분

  • Console.ReadKey()메서드

  • ConsoleKeyInfo Console.ReadKey(bool intercept)

  • 다음 문자나 사용자가 누른 기능 키를 가져옴. 누른 키는 선택적으로 콘솔 창에 표시 됨

  • ConsoleKeyInfo객체 내부의 KeyChar속성을 사용하면 어떤 키를 입력 하는지 알 수 있음 (char자료형)

  • ConsoleKeyInfo객체 내부의 Key속성은 ConsoleKey객체. 현재 System.ConsoleKeyInfo 개체가 나타내는 콘솔 키를 가져옴

  • ConsoleKey객체는 안에 키보드에 있는 키를 입력받을 수 있음

    ConsoleKeyInfo info = Console.ReadKey(); // 누른 키 읽어 옴

    Info.Key -> 누른 키를 저장한 객체 안에서 key속성을 사용

    그 속성은 ConsoleKey형태로 반환 됨

 

 

02. 배열

  • 배열의 Length속성 / List Count 속성 사용

 

  • IndexOutOfRangeException

  • 배열의 범위를 벗어나는 인덱스로 접근하면 발생하는 예외

  • 음수를 넣어도 발생

 

  • 배열의 초기화

  • 자료형의 기본값으로 공간 채워짐

  • 숫자 자료형 : 0 / 문자열 자료형 : 빈 문자열 / 객체 : (null)

 

  1. 반복문

  • for 반복문으로 한글 전부 출력하기

    for(int i = ‘‘ ; i <= ‘’ ; i++)

    {Console.WriteLine((char) i );} // i char로 형변환 해서 출력

 

  • 외부 요인으로 조건 변경

  • 보통 while반복문이 외부 요인으로 조건이 변경되는 경우 사용

  • 예시_DateTime.Now.Ticks속성 사용하여 조건식의 조건을 외부에서 가지고 옴

  • DateTime.Now.Ticks속성 : 0001 1 1 12:00:00 자정 이후 경과된 100나노초 간격의 수 구함

    while(300000 > DateTime.Now.Ticks){ } // Ticks속성으로 조건문의 조건이 외부에서 들어옴

 

  • for 반복문

    조건 반복자의 수를 반대로 흐르게 하면 됨

 

  • foreach 반복문

  • foreach(자료형 변수 in 컬렉션)

  • 보통 var키워드랑 함께 많이 씀

    foreach(var something in arrayA)

 

  • 코드 조각

  • 자주 사용되는 코드를 정의해서 쉽게 사용할 수 있게 만든 것

  • 자동 완성이 될 때까지 쓴 뒤 tab을 두 번 누르면 자동으로 조각이 완성 됨

  • If,while, for, foreach 다 됨

 

  • Break, continue

  • Break : 가장 가까운 반복문 벗어나기

  • goto : 원하는 반복문 벗어나기

    레이블을 벗어나고 싶은 반복문 뒤에 달아 둠goto 레이블명 을 만나면 레이블로 이동함

  • Continue : 현재 반복을 먼추고 다음 반복을 진행하도록 조건식으로 돌아감

 

  • 문자열 처리

  • 문자열 처리 메서드는 자신을 변경하지 않고 반환 -> 비파괴적 메서드

  1. 대문자화와 소문자화

  • ToUpper() : 문자열 내부의 문자를 모두 대문자로 변경

  • ToLower() : 문자열 내부의 문자를 모두 소문자로 변경

string input = “salad”;

Console.WriteLine(input.ToUpper());

input.ToUpper(); // 자기 자신 변화 XConsole.WriteLine(input); // 따라서 이건 소용 없음

 

  1. 문자열 자르기

  • Split() : 문자열을 특정한 문자 또는 문자열로 자름

  • 매개변수로 자르는 기준(공백, 문자, 기호 등)을 넣어주면 그거 대로 잘림

  • 문자 배열, 문자열 배열로 매개변수 넣어도 됨

       

string input = "양상추 토마토,치즈 계란+드레싱";
        string[] inputs = input.Split(new char[] {' ',',','+'});
        foreach (var item in inputs)
        {
 	Console.WriteLine(item);
}
  1. 문자열 양 옆의 공백 제거

  • Trim() : 문자열 양 옆의 공백을 제거

  • TrimStart() : 문자열 앞의 공백을 제거

  • TrimEnd() : 문자열 뒤의 공백을 제거

 

  1. 배열을 문자열로 변환

  • string.Join() : 배열의 요소를 뭉쳐 문자열로 변경

  • 매개변수로 구분자도 삽입 되고, 조인할 배열 넣어줌

    string[] array={“”, ””, ””, ””};

    Console.WriteLine(string.Join(‘ , ’, array)); // ‘ , ’ : 뭉친 애들 사이에 넣어줄 구분들

     

  • 그 외 콘솔 메서드들

  • Console.Clear() : 콘솔 화면을 지움

 

  • Console.SetCursorPosition() : 콘솔 화면의 특정한 위치로 커서 이동

    Console.SetCursorPosition(5, 5); // 좌표가 매개변수

     

  • Thread.Sleep() : 특정한 시간만큼 스레드 정지

  • 괄호 내부에 프로그램을 정지시키고 싶은 시간만큼 밀리초 단위로 입력

  • 밀리초! 1/1000

  • Using System.Threading; 해줘야 함-> import와 같은건가 본데 Thread 클래스 사용해야 하므로!

Console.WriteLine("첫 번째 출력");
Thread.Sleep(2000);
Console.WriteLine("두 번째 출력");
Thread.Sleep(2000);
Console.WriteLine("세 번째 출력");

 

  • 이동하는 골뱅이 만들기

앞으로 나가는 거 만들어 보자…. ㅋㅋㅋㅋㅋ 하 깜찍하네 진짜 예제

int x = 1;

            while (x < 30)
            {

                Console.Clear();
                Console.SetCursorPosition(x,5);

                if (x % 3 == 0)
                    Console.WriteLine("__@");

                else if(x % 3 == 1)
                    Console.WriteLine("_^@");

                else
                    Console.WriteLine("^_@");

                 Thread.Sleep(500);
                x++;
            }

 

 

  • switch 조건문과 무한 반복문으로 방향키입력 예제

bool state = true;
            int x = 0;
            int y = 0;

            while(state)
            {
                ConsoleKeyInfo info = Console.ReadKey();
                switch (info.Key)
                {
                    case ConsoleKey.UpArrow:
                        y--;
                        if (y < 0)
                        {
                            Console.WriteLine("갈 곳이 없어요");
                            y++;
                        }
                        else
                        {
                            Console.Clear();
                            Console.SetCursorPosition(x, y);
                            Console.WriteLine("@");
                        }

                        break;
                    case ConsoleKey.DownArrow:
                        y++;
                        if (y > 50)
                        {
                            Console.WriteLine("갈 곳이 없어요");
                            y--;
                        }
                        else
                        {
                            Console.Clear();
                            Console.SetCursorPosition(x, y);
                            Console.WriteLine("@");
                        }
                        break;
                    case ConsoleKey.LeftArrow:
                        x--;
                        if (x < 0)
                        {
                            Console.WriteLine("갈 곳이 없어요");
                            x++;
                        }
                        else
                        {
                            Console.Clear();
                            Console.SetCursorPosition(x, y);
                            Console.WriteLine("@");
                        }
                        break;
                    case ConsoleKey.RightArrow:
                        x++;
                        if (x > 50)
                        {
                            Console.WriteLine("갈 곳이 없어요");
                            x--;
                        }
                        else
                        {
                            Console.Clear();
                            Console.SetCursorPosition(x, y);
                            Console.WriteLine("@");
                        }
                        break;
                    case ConsoleKey.X:
                        state = false;
                        break;
                }
            }

 

 

 

 

'C# > 이론' 카테고리의 다른 글

[C#][이론] 클래스  (0) 2020.08.06
[C#][이론] 변수와 자료형  (0) 2020.07.31
[C#][이론] C# 플랫폼과 프로그래밍 언어  (0) 2020.07.31

+ Recent posts