c# 특강 노트-변수와 자료형
class는 일종의 설계도. a.k.a붕어빵틀
instance는 붕어빵
private와 public 은 구분할것
private를 사용하지 않으면 버그 잡기 어려움.
외부에서 접근 하면 안되는 건 private로
외부에서 접근해서 사용해야 하는거면 public
지역 변수는 함수가 종료되면 메모리에서 삭제
전역 변수는 함수가 종료되도 메모레에서 삭제가 안됨. why? 함수 바깥에서 정의된 변수라서
지역변수에는 접근제한자를 사용할 수 없음
싱글턴은 자기 자신이 인스턴스를 가지고 있음
변수선언시 값을 넣어주지 않으면 기본값으로 구동

2주차 강의 내용정리

  1. 조건문
    조건문은 주어진 조건식의 결과에 따라 프로그램의 제어 흐름을 변경하는 제어문

if 문 예시)
if (조건식)
{
// 조건식이 참일 경우 실행
}

else문 예시)
if(조건식)
{
//조건식이 참일경우 실행할 코드
}
else
{
//조건식이 거짓일 경우 실행할 코드
}

else if문 예시

if(조건식1)
{
//조건식1이 참일때 실행할 코드
}
else if(조건식2)
{
//조건식2가 참일때 실행할 코드
}
else
{
//모든 조건식이 거짓일 경우 실핼할 코드
}

중첩 조건문
- 하나의 조건문 안에 또 다른 조건문이 포함된 형태의 조건문

예시)
if(조건식 1)
{
if(조건식2)
{
//조건식 2가 참일 경우 실행할 코드
}
}

  • switch 문
    - switch문은 변수나 식의 결과에 따라 다른 코드 블록을 실행하는 제어문
    - case문을 사용하여 변수나 식의 결과에 따라 실행할 코드를 지정
    예시)
    switch(변수나 식)
    case 값1:
    //값1이 나온 경우 실행되는 코드
    break;
    case 값2:
    //값2가 나온 경우 실행되는 코드
    break;
    default:
    // 모든 case문에 해당하지 않는 경우 실행되는 코드
    break;

    3항 연산자
    - 3항 연산자는 if문의 간단한 형태, 조건식의 결과에 따라 두 값을 선택하는 연산자.
    (조건식) ? 참일 경우 값 : 거짓일 경우 값;

예시)
int currentExp = 1200;
int requiredExp = 2000;

// 삼항 연산자
string result = (currentExp >= requiredExp) ? "레벨업 가능" : "레벨업 불가능";
Console.WriteLine(result);

  • if else 문
    if (currentExp >= requiredExp)
    {
    Console.WriteLine("레벨업 가능");
    }
    else
    {
    Console.WriteLine("레벨업 불가능");
    }

반복문
반복문은 한 범위의 명령문을 반복해서 실행하는 제어문
즉, 반복문 내부에서 루프를 돌려서 조건을 만족시키면 루프를 종료한다고 보면 됨

  • for 문
    - for문은 초기식, 조건식, 증감식을 사용하여 반복문을 작성합니다.
    - 초기식은 반복문이 시작될 때 단 한 번 실행되고,
    조건식은 반복문이 실행될 때마다 평가되며, 참(true)인 경우 반복문이 계속 실행됩니다.
    증감식은 반복문이 실행될 때마다 실행되는 식입니다.
    예시)
    for (초기식; 조건식; 증감식)
    {
    // 조건식이 참인 경우 실행되는 코드
    }

  • while
    - while문은 조건식이 참(true)인 동안 코드 블록을 반복적으로 실행
    예시)
    while (조건식)
    {
    // 조건식이 참인 경우 실행되는 코드
    }

  • do while
    - do-while문은 while문과 비슷하지만, 조건식을 검사하기 전에 먼저 코드 블록을 한 번 실행하는 점이 다름
    예시)
    do
    {
    // 조건식이 참인 경우 실행되는 코드
    }
    while (조건식);

  • foreach
    - foreach문은 배열이나 컬렉션에 대한 반복문을 작성할 때 사용합니다.
    예시)
    foreach (자료형 변수 in 배열 또는 컬렉션)
    {
    // 배열 또는 컬렉션의 모든 요소에 대해 반복적으로 실행되는 코드
    }

중첩반복문
- 중첩조건문 처럼 반복문 안에 반복문

  • break & continue
    - break는 반복문을 중지시키는 역할
    - continue는 현재 반복을 중지하고 다음 반복을 진행하는 역할
  • 배열
    - 동일한 자료형의 값들이 연속적으로 저장되는 자료 구조

  • 컬렉션
    - 컬렉션은 자료를 모아놓은 데이터 구조를 의미
    - 컬렉션은 배열과 비슷한 자료 구조
    - 배열과는 다르게 크기가 가변적
    - 컬렉션의 예시) List, Dictionary, Stack, Queue, HashSet

메서드
- 메서드는 일련의 코드 블록, 특정한 작업을 수행하기 위해 사용되는 독립적인 기능 단위
- 코드의 재사용성과 모듈화를 위해 사용, 필요할 때 호출하여 실행
- 역할 과 중요성 : 코드의 재사용성, 모듈과, 가독성과 유지보수성, 코드의 중복제거, 코드의 추상화

  • 메서드 오버로딩
    - 메서드 오버로딩은 동일한 이름의 메서드를 다양한 매개변수 목록으로 다중 정의하는 개념
    - 매개변수의 개수, 타입, 순서가 다른 여러 메서드를 동일한 이름으로 정의하여 메서드 호출 시 매개변수의 형태에 따라 적절한 메서드가 선택되도록 할 수 있음
    - 오버로딩은 메서드의 기능이나 작업은 동일하지만 입력값에 따라 다르게 동작해야 할 때 사용
    -재귀 호출
    - 개념
    - 메서드가 자기 자신을 호출하는것을 의미
    - 재귀 호출은 문제를 작은 부분으로 분할하여 해결하는 방법중 하나, 작은 부분의 해결방법 = 큰 문제의 해결방법 인 구조에 적합
    - 호출 스택에 호출된 메서드의 정보를 순차적으로 쌓고 메서드가 반환되면서 스택에서 순차적으로 제거되는 방식으로 동작
    - 주의점
    - 복잡한 문제를 단순하게 해결할 수 있음
    - 주의점은 종료 조건을 명확하게 정의할것, 종료 조건을 불만족시 무한히 재귀호출이 반복 > 스택 오버플로우 등의 오류 발생 가능성 있음
    - 메모리 사용량이 더 크고 실행속도가 느릴수 있음. 필요한 경우에만 사용할것
    -구조체
    - 여러개의 데이터를 묶어서 하나의 사용자 정의 형식으로 만드는것
    - 구조체는 값 형식으로 분류, 데이터를 저장하고 필요한 기능을 제공
    - 구조체는 struct 키워드를 사용하여 선언
    - 구조체의 멤머는 변수와 메서드로 구성될 수 있음

구조체가 작성되는 위치는?
검색결과 : 클래스 바깥, 그렇지만 네임스페이스 안에 위치. 그리고 파일 최상단에 위치

회고. 사실은 오늘 2주차 강의를 끝내고 3주차 강의의 중반까지는 진행해보려고 했지만, 중간중간 개인과제 관련으로 적용할것들을 적용해보다 보니, 2주차 강의끝 까지 밖에 진행을 못했다. 내일은 3주차 강의와 4주차 강의를 끝내는 것을 목표로 잡아야 할거 같다. 그리고 오늘 저녁과 내일은 오늘 공부한것의 복습이 필요할거 같다는 생각이 든다. 특히 메서드 오버로딩이 무엇인지 다시 강의를 들으면서 정리를 해야 할거 같다. 조건문과 반복문은 이미 사전캠프에서 어느정도 실습을 해보면서 감을 잡았지만, 메서드 관련 부분은 아직 조금 밖에 감이 안잡히는거 같다.

profile
기획, 개발 지망

0개의 댓글