카테고리 없음

C#문법 기초 정리

초뭏 2025. 4. 14. 22:16

C#문법을 배웠는데 한번에 들어온게 너무 많아서 정리를 좀 해야할것 같다.

전에 본것들은 다루지 않겠다.

 

 

Console.WriteLine("") = 실행하면 "~라고 콘솔창에 뜬다"

Console.Write() = 콘솔창에 뜨는건 같지만 줄을 바꾸지 않는다.

Console.ReadLine = 콘솔창에 사람이 쓰는 글을 받아서 활용가능.

int.parse, int.parse()= readline으로 받은 숫자는 숫자가 아닌 문자로 받아오기 때문에 숫자로 바꿀때 쓴다.

 

주석에도 종류가 있다. 

// = 한줄 주석

/*

           = 여러줄 주석

*/

컨트롤 + k + c = 드래그한 범위 주석처리
컨트롤 + k + u = 드래그한 범위 주석처리 해제
 
이스케이프 시퀀스 : 문자열 내에 특수한 문자를 포함시키기 위해 사용되는 특별한 문자 조합
\' = 작은따옴표(') 삽입
\" = 큰따옴표(") 삽입
\\ = 역슬래시(\) 삽입

\n = 새 줄(줄바꿈) 삽입

\r = 현재 줄 맨 앞으로 이동

\t = 탭 삽입

\b = 백스페이스 삽입 

 

키워드 = 이미 C#에서 지정한 단어들은 변수로 지정할 수 없다.

 

var 키워드 =  var 키워드로 변수를 선언하면 변수의 자료형이 컴파일러에 의해 자동으로 결정된다.

자료형이 10이면 int, 단어들은 string 이런식으로

 

논리연산자는 저번에 봤지만 까먹어서 다시

&& = 논리곱 = and

|| = 논리합 = or

! = 논리부정 = not

 

비트 연산자 = 비트 연산자는 데이터의 비트(bit) 단위로 연산을 수행하는 연산자다. 솔직히 아직 감이안옴

& = and = 두 비트 값이 모두 1일 때 1을 반환

| = or = 두 비트 값 중 하나라도 1일 때 1을 반환

^ = xor = 두 비트 값이 서로 다를 때 1을 반환

~ = not = 비트 값의 보수(complement)를 반환

<< = 왼쪽 시프트 = 비트를 왼쪽으로 이동

>> = 오른쪽 시프트 = 비트를 오른쪽으로 이동

 

복합 대입 연산자 = 복합 대입 연산자는 변수에 연산을 수행한 결과를 저장하는 연산자입니다.

이게뭘까

연산자에도 우선순위가 있다. 복붙해서 가져와서보겠다.

1. 괄호 (): 괄호로 감싸진 부분은 가장 높은 우선순위로 먼저 계산됩니다.

2. 단항 연산자: 단항 연산자들(++, --, +, -, ! 등)은 괄호 다음으로 높은 우선순위를 가집니다.

3. 산술 연산자: 산술 연산자들(*, /, %, +, -)은 단항 연산자보다 우선순위가 낮습니다.

4. 시프트 연산자: 시프트 연산자(<<, >>)는 산술 연산자보다 우선순위가 낮습니다.

5. 관계 연산자: 관계 연산자들(<, >, <=, >=, ==, !=)는 시프트 연산자보다 우선순위가 낮습니다.

6. 논리 연산자: 논리 연산자들(&&, ||)는 관계 연산자보다 우선순위가 낮습니다.

7. 할당 연산자: 할당 연산자들(=, +=, -=, *=, /= 등)는 논리 연산자보다 우선순위가 낮습니다.

 

즉 () > +-! > */%+- > >><< > ><=! > &&|| >  =+-*/  라는건데 뭐지 외계언가

 

문자열 처리 기능 string str = "Hello, World!"에서 

문자열 생성 = newstr

str1 + " " + str2로 연결 가능

string[] words = str.Split('ㅁ,ㅇ'); = 쉼표로 문자열을 구분하여 배열을 만듬 == str [1] = a str [2] = ㅇ

int index = str.IndexOf("World"); = str 에서 "World" 문자열의 첫 번째 인덱스를 찾아 index 변수에 저장

string newStr = str.Replace("World", "Universe");  = str에서 "World" 를 "Universe" 로 대체한 새로운 문자열 newStr생성bool isEqual = str1 == str2; = 문자열을 서로 비교 후 결과값 저장

 

스위치 식 = 위에서 내려가면서 조건에 맞으면  break = 스탑

switch ()
{
    case 값1:
        // 값1이 나온 경우 실행되는 코드
        break;
    case 값2:
        // 값2가 나온 경우 실행되는 코드
        break;
    // ...
    default:
        // 모든 case문에 해당하지 않는 경우 실행되는 코드
        break;

 

for 문의 기본식

for ( i = 0 =초기식;  i < 10 = 조건식;  ++ = 증감식)

i는 0이고 i가 10보다 작다면 ++ 

 

while ( 조건 ) = 조건이 참일동안 반복실행

while (i < 10)
{
    i++;
} = while 이 10이 될때까지 1씩 더한다.

 

for 문은 반복 횟수를 직관적으로 알 수 있고, 반복 조건을 한 눈에 확인할 수 있어 가독성이 좋습니다.

while 문은 반복 조건에 따라 조건문의 실행 횟수가 유동적이며, 이에 따라 코드가 더 간결할 수 있습니다.

어떤 반복문을 사용할지는 코드의 흐름에 따라 상황에 맞게 선택하는 것이 좋습니다.

 

do-while 문

do
{
    // 조건식이 참인 경우 실행되는 코드
}
while (조건식);

do-while문은 while문과 비슷하지만, 조건식을 검사하기 전에 먼저 코드 블록을 한 번 실행하는 점이 다름

 

for의 중첩

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 3; j++)
    {
        Console.WriteLine("i: {0}, j: {1}", i, j);
    }
}

i 가 5미만이면 ++,하지만 j또한 3미만이면 ++

결과는? 

0, 0    0, 1     0, 2   

1, 0    1, 1     1, 2    

2, 0    2, 1     2, 2   

3, 0    3, 1     3, 2   

4, 0    4, 1     4, 2  이렇게 15번 반복한다.

 

break = 반복문을 중지시키는 역할 == 아예 끝

continue = 현재 반복을 중지하고 다음 반복을 진행하는 역할 == 이번거 패스하고 다음거로 넘어가기

 

 

 

배열의 컬렉션 

 

List = 가변적인 크기를 갖는 배열

List 1 2 3 중에 2를 삭제하면 List 1 3이 남는다.

 

Dictionary = 키와 값으로 구성된 데이터를 저장

Stack = 후입선출(LIFO) 구조를 가진 자료 구조

Queue =선입선출(FIFO) 구조를 가진 자료 구조

HashSet = 중복되지 않은 요소들로 이루어진 집합

 

메서드.

메서드란 특정 작업을 저장해두고 여러곳에서 사용 가능하게 만든 코드의 덩어리?

[접근 제한자] [리턴 타입] [메서드 이름]([매개변수])
{
    // 메서드 실행 코드
}

접근 제한자 = public, static, private, protect

리턴타입 = 반환하는 값의 데이터 타입. 없을시 void

메서드 이름 = 메서드 이름

매개변수 = 메서드에 전달되는 입력 값

 

 

 

 

c# 강의 2강까지 들은걸 대충 정리해도 이정돈데 

아직 3발 남았다.

살려줘