.
목 차
1주차 강의
1.클래스, 매서드, 변수 등의 이름 입력할 때 Tab으로 자동완성 가능.
Console.WriteLine("C#");
2.메서드나 변수 입력 도중 자동완성이 끊겼다면, Ctrl + Space로
IntelliSense 부르기.
Console.WriteLine("Study");
3.코드 템플릿을 사용하여 더 빠른 코드 가능.
for (int i = 0; i < 10; i++)
{
코드 템플릿(Tab 2회)으로 만든 for문.
}
4. Debug 모드 vs Release모드: VS Community창 상단에 실행버튼 왼쪽.
디버그모드는 개발 중, 릴리즈 모드는 개발완료 후를 위한 모드임.
Console.WriteLine(var Value);
Console.Write(var Value);
이스케이프 시퀀스
\', \", \\, \n, \r, \t, \b 등.
주석: 보통 한줄 주석 선호. (한줄: // 여러 줄: /**/)
프로그램 초반에 설명용으로 여러줄 주석 쓰기도 함.
/*주석 주의사항
코드 대체x
정확&명확해야 함
코드 수정 시 함께 업데이트 필요
모든 코드x 필요할때만 작성o
*/
Members&DataType
//frequently used Data Type:
//int, long, float, double, char, string, bool.
/*정수 자료형만 해도 최소 8개가 있는데, 이렇게 종류가 많은 이유는? (세분화)
* 메모리의 효율적 사용(자료형마다 크기가 다르므로)
* 정확한 데이터 표현
* 타입 안정성(자료형으로 인한 크기범위 제한 등)
*/
//리터럴(literal): 프로그램에서 직접 사용되는 상수 값
/*정수형 literal: 10, 0x10, 0b10, 10L, 10UL 등
*부동소수 ex: 3.14, 3.14f, 3.14m
*문자형 literal: 'A', '\n', '\u0022'
*문자열 literal: 일반 문자열, 보간 문자열, Verbatim문자열, 보간Verbatim
*/
/*변수 선언, 초기화.
*int a, b, c; 동시에 선언.
*a = b = c = 10; 동시에 초기화.
*int a, b, c = 10; //c만 초기화 됨.
*/
//키워드: C#에서 이미 예약된 단어
/* 식별자:변수, 메서드, 클래스, 인터페이스 등에서 사용되는 이름
* 첫 문자: 알파벳, 언더스코어(_)
* 두 번째 문자~: 알파벳, 언더스코어, 숫자
* 대소무자 구별됨.
* 키워드랑 겹치면 안됨.
*/
/*코드 컨벤션(개발자간의 약속된 코드 작성 규칙)
*식별자 표기법: 카멜 케이스, 파스칼 케이스, 대문자 약어.
*들여쓰기(코드블록)
*중괄호 위치: 새로운 줄에서 시작 (때로 if () { 처럼 붙기도 함.)
*1줄 공백: 관련 없는 코드 사이
*2줄 공백: 클래스/메서드 등의 블록 사이.
*/
/*형 변환: 명시적&암시적 -> 반드시 더 큰 형태를 쫓아감.*/
/*Console.ReadLine: 다중입력*/
{
Console.Write("Enter two numbers: ");
string input = Console.ReadLine(); // "10 20"과 같은 문자열을 입력받음
string[] numbers = input.Split(' '); // 문자열을 공백으로 구분하여 배열로 만듦
int num1 = int.Parse(numbers[0]); // 첫 번째 값을 정수로 변환하여 저장
int num2 = int.Parse(numbers[1]); // 두 번째 값을 정수로 변환하여 저장
/*형변환과 다름???*/
int sum = num1 + num2; // 두 수를 더하여 결과를 계산
Console.WriteLine("The sum of {0} and {1} is {2}.", num1, num2, sum);
}
//var 키워드.
Operators&String Process
//산술 연산자
//관계 연산자
//논리 연산자
//비트 연산자
//복합 대입 연산자 & 증감연산자
//연산자 우선순위
//문자열 처리 기능 및 메서드
//생성, 연결, 분할, 검색, 대체, 변환, 비교, 포멧팅
//gpt 추천 메서드: Concat, Join, Split, Substring, Replace, ToUpper&ToLower,
//Trim, Contains, IndexOf, StartsWith&EndsWith
//string a = b + c + d 보다는 StringBuilder, 보간, Join 등을 사용.
2주차 강의
Condition&Loop
//<조건문>
//if문: 조건식의 결과에 따라 실행여부 결정하는 조건문.
//else문: if의 세트메뉴.
//else if: if와 else 사이의 새로운 조건문.
//중첩조건문: if 안의 if
//switch문.
//3항 연산자
//(조건식)? 참:거짓;
//<반복문>
//for문: 초기식, 조건식, 증감식
//while문: 조건식이 true인 동안 반복.
//for vs while
//for: 직관적인 반복횟수
//while: 유동적 반복횟수
//for each
//중첩반복문
//구구단
//break, continue문.
Array&Collection
//배열: 동일한 데이터 유형을 가지는 데이터 요소들을 한 번에 모아 다룰 수 있는 구조.
//index화 가능
//배열_이름: new 데이터_유형[크기]; 생성(정확히는 할당)
//이 때 new 는 클래스 때문!
//--------------
//다차원배열: int[,] array = new int[2, 3];
//1차원 아니다 = 다차원이다.
//복잡한 데이터 구조를 효율적으로 관리 가능.
//ex) 게임 맵 구현.
//컬렉션: 자료를 모아놓은 데이터 구조.
//1. List<T> name = new List<T>()
//Length 대신 Count.
//2. Dictionary<string, int> name = new Dictionary<string, int>()
//키와 값이 세트.
//3. Stack, Queue.
//둘다 형은 1개씩.
//Stack: 후입선출.
//Queue: 선입선출.
//4. HashSet: 중복되지 않는 요소들로 이루어진 집합.
//List와 유사하지만 중복성의 차이가 있음.
//bool a = hash.Add(1); -> true/false로 중복인지 확인.
//배열과 리스트.
//리스트 단점: 메모리 사용량, 데이터 접근 시간, 코드 복잡도.
Method&Struct
//메서드: 일련의 코드블록, 특정한 작업을 수행하기 위해 사용되는 독립적인 기능단위.
//메소드를 사용하는 이유:
//반복되는 작업을 더 편하게 불러오기 위해.(재사용성)
//코드의 가독성을 높이기 위해.(가독성&유지보수성)
//모듈화
//추상화
//메서드 구조
//접근제한자(private, public, protected)
//리턴 타입.
//메서드 이름
//매개변수
//메서드 바디.
//오버로딩(Overloading.)
//동일한 이름의 메서드를 다양한 매개변수 목록으로 다중정의하는 개념.
//재귀호출.
//메서드가 자기 자신을 호출
//무한루프 조심.
//구조체
//여러 개의 데이터를 묶어서 하나의 사용자정의 형식으로 만들기 위한 방법.
//값 형식으로 분류. struct키워드 이용.
//멤버: 변수&메서드. (동욱님은 둘 중 하나만이라 했던거 같은데...;;)
마무리
이번 조에서는 매일 저녁에 서로의 코드를 공유하는데, 2가지의 배울 점이 있었다.
- 비트 연산자로 플레이어 교체(0, 1 toggle)
- 격자 할 때 '+' 기호 사용하면 조금 더 예쁜 모양을 만들 수 있다.
'내일배움캠프 > C#문법종합반' 카테고리의 다른 글
[TIL 24.05.05~06] 5주차 강의-알고리즘 기초, 정렬 알고리즘 (0) | 2024.05.05 |
---|---|
[TIL 24.04.29~05.05] 4주차 강의 필기노트 (0) | 2024.04.29 |
[TIL 24.04.28] 3주차 강의 필기노트 (0) | 2024.04.28 |
[TIL 24.04.23] 3주차 과제1: Snake Game (0) | 2024.04.23 |
[TIL 24.04.23] 2주차 과제2: Tic Tac Toe (0) | 2024.04.23 |