본문 바로가기

TIL

[TIL]2023-12-29 / 6일차 - C# 기초 공부 복기

오늘은 이제 기존 미니 프로젝트 조와 헤어지고 C# 개인과제 기간에 돌입했다.

이를 위해 새로운 조와 만나 적응하는 시간을 가지고

새로 제공 받은 C# 강의를 시청하면서 오늘의 공부를 시작했다.

 

오늘은 5개의 강의 영상 중 2개를 시청하였다.

2단계 C# 강의에 경우 사전캠프 기간 동안 공부했던 기본 코딩 이론 위주로 내용이 진행되어 다음 주 부터 작업에 들어갈 개인과제 전에 C# 복기를 하는 시간을 가지기로 하였다.

 

개인 과제

개인 과제 목표는 내가 좋아하는 텍스트 어드벤처가 생각나는 Text rpg 간단 구현이다.

 

개인 과제 1일차 C# 공부

 

연산자와 문자열 처리 관련하여 다시 복기한 것이 유요했다.

 

연산자 문자열 처리 목록

더보기

01. 산술, 관계, 논리 연산자 사용법

  1. 산술연산자
  2. 관계연산자
  3. 논리연산자 (&&==And / ||==Or / !==Not) <- 헷갈리지 않기

02. 비트 연산자

  1. 비트연산자
int a = 0b1100; // 12 (2진수)
int b = 0b1010; // 10 (2진수)

int and = a & b; // 0b1000 (8)
int or = a | b; // 0b1110 (14)
int xor = a ^ b; // 0b0110 (6)

int c = 0b1011; // 11 (2진수)
int leftShift = c << 2; // 0b101100 (44)
int rightShift = c >> 1; // 0b0101 (5)

int d = 0b1100; // 12 (2진수)
int bit3 = (d >> 2) & 0b1; // 1 (3번째 비트)
d |= 0b1000; // 0b1100 | 0b1000 = 0b1100 (12)

 

03. 복합 대입 연산자와 증감 연산자 활용

  1. 복합 대입 연산자 (++x와 x++의 차이 = 전위 후위의 차이 숙지!)
  2. 증감 연산자

04. 연산자 우선순위

  1. C# 주요 연산자 우선순위

05. 문자열 처리 기능 및 메서드

   1.문자열 생성

   2.연결

   3.분할 - x.Split();

   4.검색 - x.IndexOf();

   5.대체 - x.Replace();

   6.변환 - Parse(); / ToString();

   7.비교 - isEqual = x == y; / int compare = string.Compare(x, y);

   8.포멧팅

1번 강의 과제 : 간단한 계산기 만들기

더보기

1. 사용자로부터 입력 받기 : 이름과 나이를 입력 받아 출력하기

static void Main(string[] args)
{
    Console.Write("본인의 이름(ex = 김준하)과 나이(ex = 25)를 입력 해주세요: ");
    string input = Console.ReadLine();    // 이름과 나이 문자열을 입력받음

    string[] nameage = input.Split(' ');  // 문자열을 공백으로 구분하여 배열로
    string name = nameage[0];
    string age = nameage[1];
    Console.WriteLine("당신의 이름은 \"{0}님\"이고 나이는 \"{1}세\" 입니다.", name, age);
}

 

2. 간단한 사칙연산 계산기 만들기 : 두 수를 입력 받고 사칙연산의 결과를 출력하기

 

static void Main(string[] args)
{
    //간단한 사칙연산 계산기 만들기

    Console.Write("계산하고 싶은 사칙연산을 입력하여 주십시오: ex) 1 + 5 or 6 * 2 or 8 / 2  ");
    string numInput = Console.ReadLine();    // 계산식을 입력받음

    string[] calC = numInput.Split(' ');  // 문자열을 공백으로 구분하여 배열로
    int num1 = int.Parse(calC[0]);
    var key = calC[1];
    int num2 = int.Parse(calC[2]);

    if (key=="+")
    {
        int sum = num1 + num2;
        Console.WriteLine("{0} {1} {2}의 결과는 = {3}", num1, key, num2, sum);
    }
    else if (key == "-")
    {
        int sum = num1 - num2;
        Console.WriteLine("{0} {1} {2}의 결과는 = {3}", num1, key, num2, sum);
    }
    else if (key == "*")
    {
        int sum = num1 * num2;
        Console.WriteLine("{0} {1} {2}의 결과는 = {3}", num1, key, num2, sum);
    }
    else if (key == "/")
    {
        int sum = num1 / num2;
        Console.WriteLine("{0} {1} {2}의 결과는 = {3}", num1, key, num2, sum);
    }
}

강의 내용에서 다룬 공백 split 위주로 만들었지만

첫번째 숫자와 두번째 숫자를 하나씩 입력하고 원하는 이항연산법을 선택하는 방법도 가능할 것이다

그냥 한번에 구분하는 방식을 구현해 보고 싶었다

 


챕터 1 과제 코드 출력 화면 자료를 이제야 봤다... 더 간단한 것들을 요구했던 것으로 우선 만든게 아까우니 이대로 제출했다.

 

3. 온도 변환기 만들기 - 섭씨온도를 화씨온도로 변경

목표 화면:

static void Main(string[] args)
{
    //온도 변환기 만들기, 섭씨온도를 입력받아 화씨온도로 변환
    Console.Write("화씨 온도로 전환하고 싶은 섭씨 온도를 입력하세요 : ");
    string numInput = Console.ReadLine();
    int num = int.Parse(numInput);

    int answer = num * 9 / 5 + 32;
    Console.Write("변화된 화씨 온도: "+answer);

}

 

4. BMI 계산기 만들기 - BMI 지수 계산

BMI = 체중(kg) / 키(m)^2

static void Main(string[] args)
{
    //키와 몸무게로 BMI지수 계산
    Console.Write("키를 입력해주세요(m) : ");
    string heightInput = Console.ReadLine();
    float num1 = float.Parse(heightInput);

    Console.Write("체중을 입력해주세요(kg) : ");
    string weightInput = Console.ReadLine();
    float num2 = float.Parse(weightInput);

    float answer = num2 / (num1 * num1);
    Console.WriteLine("BMI지수: " + answer);
}

 

 

2번 강의는 내용과 과제가 어려운 면이 있어 다음에 이어서 다시 하고자 하여 다음 TIL에 한번에 작성하고자 한다.

 

오늘은 오랜만에 유니티가 아닌  순수하게 C# 코딩만 하였다.

앞으로 조금씩 점점 복잡해지는 로직을 옅보고 벌써부터 숨이 턱 막히는 느낌이 들지만

미니 프로젝트도 성공적으로 마무리 했던 만큼 이번에도 어떻게든 해내겠다는 마음가짐으로 나아간다.