4. 문자열 표현식

C#/과제 2019. 3. 25. 00:13

C#에는 우리가 C, C++에서 사용하던 printf, cout과는 달리 여러가지 문자열 표현방식을 제공한다.



위의 캡처에서 말하는 Escape 문자란,

\n(줄내림), \t(탭), \a(삐-소리) 등 문자로 표현하기 힘든 기능들을 역슬래시와 문자를 결합하여 사용하는 것을 뜻한다.

\\라고 작성할 경우 \\는 Escape 문자로 역슬래시를 1개 출력하는 문자인데, @를 포함하여 작성할 경우 2번째 처럼 \\ 그대로 출력이 되는 것이다.



참조 : Microsoft Docs

https://docs.microsoft.com/ko-kr/dotnet/csharp/tutorials/string-interpolation (문자열보간)

https://docs.microsoft.com/ko-kr/dotnet/api/system.string?view=netframework-4.7.2 (String Class)

'C# > 과제' 카테고리의 다른 글

6. using  (0) 2019.03.26
5. Stack과 Heap  (0) 2019.03.25
3. 데이터의 값형식과 참조형식  (0) 2019.03.25
2. 몬스터 공격 예제[3단계]  (0) 2019.03.24
1. For문의 구성과 흐름  (0) 2019.03.24
:

3. 데이터의 값형식과 참조형식

C#/과제 2019. 3. 25. 00:04

C#의 데이터 형식은 값형식과 참조형식으로 나눌 수 있다.

이 두가지 형식의 차이점은 Value로 볼 수 있다.


또한 모든 값 형식은 System.ValueType에서 암시적으로 파생된다.


이처럼 우리가 사용하는 int, char, double 등의 값형식의 데이터타입들은 모두 System속에서 파생된 것이란걸 알 수 있다.

값 형식은 기본적으로 NULL일 수 없으나 nullable 형식의 변수는 NULL일 수 있다.

이 말인 즉슨 값형식의 데이터타입은 모두 기본적으로 초기화를 해야만 사용할 수 있다는 뜻이다.

기본 생성자가 존재하며, 생성자 또는 리터럴을 통하여 초기화 할 수 있다.



예시를 들어 확인해보자.


<값 형식>

위의 예시와 같이 기본적으로 초기화를 해주지 않으면 사용할 수 없다.



<참조 형식>



값형식은 Stack에 존재하고, 데이터 그 자체를 Stack안에 존재하는 값형식의 변수가 복사하여 가지고 있다.

이와 다르게 참조형식은 변수가 Stack에 존재하지만, 가지고 있는 값은 Heap에 존재하는 객체의 주소를 가지고 있다.


즉, 값형식은 다른 변수가 개입을 할 수 없게 개인의 값을 가지고 있는 것이고,

    참조형식은 Heap에 존재하는 데이터의 주소를 가지고 있으므로 다른 변수가 개입하여 그 주소의 값을 변경할 수 있다.



참조 : Microsoft Docs

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/value-types (값 형식)

https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/reference-types (참조 형식)


youtube - .NET Stack and Heap (Wallace Kelly)

https://www.youtube.com/watch?v=clOUdVDDzIM



'C# > 과제' 카테고리의 다른 글

6. using  (0) 2019.03.26
5. Stack과 Heap  (0) 2019.03.25
4. 문자열 표현식  (0) 2019.03.25
2. 몬스터 공격 예제[3단계]  (0) 2019.03.24
1. For문의 구성과 흐름  (0) 2019.03.24
:

2. 몬스터 공격 예제[3단계]

C#/과제 2019. 3. 24. 23:50



'C# > 과제' 카테고리의 다른 글

6. using  (0) 2019.03.26
5. Stack과 Heap  (0) 2019.03.25
4. 문자열 표현식  (0) 2019.03.25
3. 데이터의 값형식과 참조형식  (0) 2019.03.25
1. For문의 구성과 흐름  (0) 2019.03.24
:

1. For문의 구성과 흐름

C#/과제 2019. 3. 24. 23:38

for문은 반복문으로서 condition(조건문, 부울식)의 결과값이 True일 동안 { } 안에 쓰인 본문을 계속하여 실행한다.

for문은 break;를 이용하여 종료할 수 있고, 결과값이 False일 경우 종료된다.



for문은 이렇게 구성된다.



여기서 int i = 0; 부분은 initializer 부분으로 초기값을 설정해주는 부분이다.

i < 3; 부분은 condition 부분으로 for문이 반복하여 실행하는 것의 기준인 True와 False를 리턴하는 연산을 한다.

즉, 비교 연산자를 이용하여 반복 실행하는 조건을 작성하는 부분이다.

i++ 부분은 iterator 부분으로써 본문이 실행 된 후에 증감연산자를 이용하여 값을 증감시키는 부분이다.



위의 예시를 순서대로 풀어보면 이렇게 된다.


1. int형 변수 i의 값은 0이다. (initializer 부분)

2. i의 값은 0이다. (condition 부분)

3. 0은 3보다 작다. (condition 부분)

4. 비교연산자(<)의 결과 값이 True이므로 for문의 본문을 실행한다. (condition 부분)

5. Console.Write(i); 에서 i의 값은 0이다. Console.Write를 이용하여 0을 출력한다.

6. i의 값은 0이다. (iterator 부분)

7. 0을 1증가시킨다. (iterator 부분)


8. i의 값은 1이다. (condition 부분)

9. 1은 3보다 작다. (condition 부분)

10. 비교연산자(<)의 결과 값이 True이므로 for문의 본문을 실행한다. (condition 부분)

11. Console.Write(i); 에서 i의 값은 1이다. Console.Write를 이용하여 1을 출력한다.

12. i의 값은 1이다. (iterator 부분)

13. 1을 1증가시킨다. (iterator 부분)


14. i의 값은 2이다. (condition 부분)

15. 2는 3보다 작다. (condition 부분)

16. 비교연산자(<)의 결과 값이 True이므로 for문의 본문을 실행한다. (condition 부분)

17. Console.Write(i); 에서 i의 값은 2이다. Console.Write를 이용하여 2를 출력한다.

18. i의 값은 2이다. (iterator 부분)

19. 2를 1증가시킨다. (iterator 부분)


20. i의 값은 3이다. (condition 부분)

21. 3은 3보다 작다. (condition 부분)

22. 비교연산자(<)의 결과 값이 False이므로 for문을 종료한다. (condition 부분)




참조 : Microsoft Docs

   https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/for

'C# > 과제' 카테고리의 다른 글

6. using  (0) 2019.03.26
5. Stack과 Heap  (0) 2019.03.25
4. 문자열 표현식  (0) 2019.03.25
3. 데이터의 값형식과 참조형식  (0) 2019.03.25
2. 몬스터 공격 예제[3단계]  (0) 2019.03.24
:

1. Method

C#/수업내용 2019. 3. 24. 23:33

c#에서 Method(메서드)는 일련의 문을 포함하는 코드 블록으로서, Class 또는 Struct 내에서 서명한다.

서명의 범위는 액세스 수준(public, private), 선택적 한정자, 리턴 값, 이름, 매개 변수를 포함한다.

C, C++에서 얘기하는 Function(함수)와 형식이 같다.


예제


위의 예제에서는 Computer에 속한 public수준을 가진 out_info라는 Method를 서명하고 Main에서 호출하는 예제이다.

이 예제에서 액세스 수준은 public, 리턴 값은 void형이므로 없음, 이름은 out_info, 매개 변수는 int형 number이다.

호출시 A_Computer라는 개체에 존재하는 out_info를 불러야 하므로 온점(' . ')을 사용하여 호출 후, 괄호안에 number에 해당하는 값을 전달한다.

그 결과 전달된 "1"이라는 값이 number의 값에 대입되어 "1번째 삼보의 가격 : 100"이라는 문자열이 출력된다.



참조 : Microsoft Docs(메서드(C# 프로그래밍 가이드))

   https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/methods

'C# > 수업내용' 카테고리의 다른 글

제너릭 클래스, 상속을 이용하여 Inventory 만들기  (0) 2019.04.01
List를 이용하여 Inventory 만들기  (0) 2019.04.01
Array를 이용하여 Inventory 만들기  (0) 2019.04.01
공부할것  (0) 2019.03.29
2. for, foreach, while  (0) 2019.03.27
: