-
조건문을 사용한 다양한 응용
-
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)
-
반복문
-
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 : 현재 반복을 먼추고 다음 반복을 진행하도록 조건식으로 돌아감
-
문자열 처리
-
문자열 처리 메서드는 자신을 변경하지 않고 반환 -> 비파괴적 메서드
-
대문자화와 소문자화
-
ToUpper() : 문자열 내부의 문자를 모두 대문자로 변경
-
ToLower() : 문자열 내부의 문자를 모두 소문자로 변경
string input = “salad”;
Console.WriteLine(input.ToUpper());
input.ToUpper(); // 자기 자신 변화 XConsole.WriteLine(input); // 따라서 이건 소용 없음
-
문자열 자르기
-
Split() : 문자열을 특정한 문자 또는 문자열로 자름
-
매개변수로 자르는 기준(공백, 문자, 기호 등)을 넣어주면 그거 대로 잘림
-
문자 배열, 문자열 배열로 매개변수 넣어도 됨
string input = "양상추 토마토,치즈 계란+드레싱";
string[] inputs = input.Split(new char[] {' ',',','+'});
foreach (var item in inputs)
{
Console.WriteLine(item);
}
-
문자열 양 옆의 공백 제거
-
Trim() : 문자열 양 옆의 공백을 제거
-
TrimStart() : 문자열 앞의 공백을 제거
-
TrimEnd() : 문자열 뒤의 공백을 제거
-
배열을 문자열로 변환
-
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 |