포스트

C sharp(C#) 알아보기 2장 - 제어문, 자료구조

앞서서

이번시간에는 1장에 이어 C# 의 제어문과 자료구조를 간단하게 살펴보자. 뭔가 전체적인 느낌이 자바랑 굉장히 비슷한 것 같기도 하고..

Branching, Ifs, Conditional logic

1
2
3
4
5
6
7
if(조건:bool) statement // 하나의 실행문은 bracket없이 attach 가능
if(조건:bool) {
    statement1
    statement2
    statement3
    ...
}
bool
Represents a Boolean (true or false) value.
1
2
3
4
5
6
7
8
9
10
int a = 5;
int b = 5;

bool myTest = (a + b) > 10;

if (myTest || ((a + b) == 10)) {
    Console.WriteLine("The answer is greater equal than 10.");
} else {
    Console.WriteLine("The answer is less than 10.");
}

C sharp의 논리 연산자는 어떤게 있을까?

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/boolean-logical-operators

Branching and Loops

while

1
2
3
4
5
6
7
8
9
10
11
int counter = 0;

while (counter < 5) {
    Console.WriteLine(++counter);
}

counter = 0;

do {
    Console.WriteLine(++counter);
} while (counter < 5);

for

1
2
3
for (int i = 0; i < 5; i++) {
    Console.WriteLine(i);
}

List of T and Collections of Data

List

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var names = new List<string>(["Hyechan", "Ana", "Felipe"]);

names.Add("David");
names.Add("Damian");
names.Add("Maria");

Console.WriteLine(names[0]);
Console.WriteLine(names[2]);
Console.WriteLine(names[names.Count - 1]);
Console.WriteLine(names[^1]);

foreach (var name in names[1..^1]) {
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

인스턴스 생성법들

  • var names = new List<string>{"Hyechan", "Ana", "Felipe"};
  • var names = new List<string>(["Hyechan", "Ana", "Felipe"]);
  • List<string> names = ["Hyechan", "Ana", "Felipe"];
  • 이것도 돼? var names = new List<string>(["Hyechan", "Ana", "Felipe"]){ "David", "Damian", "Maria" };
var
Local Variable Type Inference. var 를 사용하고 반대편의 내용을 C# 이 무엇인지 알 수 있으면 infer 해준다.(타입추론)
foreach
리스트의 요소들은 하나씩 사용한다.

Array

대부분의 언어에서 사용되는 primitive type. 어떤 요소 리스트를 저장하기 위해 사용.

1
2
3
4
5
var names = new string[] { "Hyechan", "Ana", "Felipe" };

foreach (var name in names) {
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Arrays are fixed in length!

Array의 길이는 고정이기 때문에, 크기 확장을 위해선 확장된 크기의 새로운 Array를 만들고 기존 값들을 넣어야 한다.

C# 12버전(2023.11.18)부터 훨씬 간단한 방법을 사용 가능하다.

1
2
3
4
5
6
7
var names = new string[] { "Hyechan", "Ana", "Felipe" };

names = [..names, "Damian"];

foreach (var name in names) {
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Sorting, Searching

1
2
3
4
5
6
7
8
9
var numbers = new List<int>{ 45, 56, 99, 48, 67, 78 };

Console.WriteLine($"I found 99 at index {numbers.IndexOf(99)}");
numbers.Sort();
Console.WriteLine($"I found 99 at index {numbers.IndexOf(99)}");

foreach (var number in numbers) {
    Console.WriteLine($"{number}");
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.