ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내일배움캠프 6일차 TIL - C# 기초 변수, 자료형, 조건문, 반복문
    TIL/C# 2024. 4. 22. 20:43

     

    [학습목표]

    C# 기초 문법을 학습한다.

     

    [학습내용]

    이번 주부터 잠시 유니티를 내려놓고 C#을 학습한다. 녹화된 강의가 지급되었고, 개인적으로 강의를 시청하며 학습하는 방식이다. 다른 언어를 다뤄본 적이 있기 때문에 널널할 것으로 생각은 되지만, 25일 목요일에 제출해야하는 개인 과제가 하나 있기 때문에 마냥 쉬엄쉬엄 할 수 만은 없을 거 같다.

    그리고 매일 오후 2시에 특별 컨텐츠가 진행된다. 튜터님이 따로 실시간 강의를 진행하시면서 어려운 점이나 궁금한 점이 있다면 해결해주시는 시간이다. 실시간으로 소통이 되기 때문에 그 자리에서 질문을 하거나 도움을 받을 수 있다는 점이 좋은 것 같다.

     

    오늘은 1주차 강의인 변수와 자료형, 연산자나 문자열 처리 등을 배웠다. 다른 언어와 표현 방식에서만 차이가 있을 뿐이지, 거의 비슷했기 때문에 어려운 점은 없었다. 다만 조금 눈길이 갔던 건 스트링이다. C#이 자바와 많이 유사하다는 느낌을 받았는데, 자바에선 String 클래스를 이용하기 때문에 S를 대문자로 표기해서 사용된다. 근데 C#은 소문자로 써서 string이라고 사용했다. 찾아보니까 C#도 String이 클래스가 맞았다. 그런데 string으로 표기하는 것도 허용하는 바이브인 것 같았다. 오히려 대문자로 쓰면 s로 바꿀 수 있습니다 알려주었다. 그 외에 딱히 주목할 만한 점은 없었다. System이 자동 using된다는 정도?

     

    1주차 과제는 총 4문제였다. 어렵지는 않았다.

    첫 번째 문제는 이름과 나이를 입력받고 출력하는 코드를 작성하는 것이었다.

    namespace ConsoleApp1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                string input;
                Console.Write("이름과 나이를 입력하세요: ");
                input = Console.ReadLine();
                string[] arr = input.Split(" ");
                Console.WriteLine("이름: " + arr[0] + ", 나이: " + arr[1] + "세");
            }
        }
    }

     

    Console.ReadLine()으로 입력받고, String.Split()을 사용하여 공백을 기준으로 나눠준 뒤 다시 출력해주는 문제였다.

     

    두 번째 문제는 두 수를 입력받고 사칙연산의 결과를 출력하는 것이었다.

    namespace ConsoleApp1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                string input;
                Console.Write("두 수를 입력하세요: ");
                input = Console.ReadLine();
                string[] arr = input.Split(" ");
                int a = int.Parse(arr[0]);
                int b = int.Parse(arr[1]);
                Console.WriteLine("+: " + (a + b));
                Console.WriteLine("-: " + (a - b));
                Console.WriteLine("*: " + (a * b));
                Console.WriteLine("/: " + (a / b));
            }
        }
    }

     

    여기서 더 발전시킨다면, int형 외의 자료형에 대해서 고려해보는 것이다. 하지만 아직 그 정도를 요구하는 것 같지는 않았기에 기능 구현에 충실했다. 여기서 핵심은 string 형태로 입력받은 데이터를 int 형태로 바꾸는 것이었다.

     

    세 번째 문제는 섭씨 온도를 화씨 온도로 변환하는 문제였다.

    namespace ConsoleApp1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                int input;
                Console.Write("섭씨온도를 입력하세요: ");
                input = int.Parse(Console.ReadLine());
                Console.WriteLine("화씨온도: " + (input * 1.8 + 32));
            }
        }
    }

     

    먼저 섭씨 온도를 화씨 온도로 바꾸는 방법을 찾아봐야 했다.

    (화씨 온도) = (섭씨 온도) x 1.8 + 32

     

    이것만 안다면 이전 문제와 비슷한 방법으로 진행하면 전혀 어렵지 않았다.

     

    네 번째 문제는 BMI 지수를 계산하는 문제였다. 위와 사용하는 식만 다를 뿐 똑같은 문제였다.

    먼저 BMI 지수 계산법은 아래와 같다.

    (BMI 지수) = (몸무게) / {(키)^2}

     

    키를 cm가 아닌 m 단위로 입력하는 것에 주의만 한다면 세 번째 문제와 똑같은 문제다.

    namespace ConsoleApp1
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                float kg, m;
                Console.Write("몸무게를 입력하세요(단위: kg): ");
                kg = float.Parse(Console.ReadLine());
                Console.Write("키를 입력하세요(단위: m): ");
                m = float.Parse(Console.ReadLine());
                float bmi = kg / (m * m);
                Console.WriteLine("BMI 지수: " + bmi);
            }
        }
    }

     

     

    1주차 강의를 다 듣고 나서 2주차 강의도 절반 정도 시청했다. 조건문과 반복문에 관한 내용이었다. 이것 또한 다른 언어와 비슷하기 때문에 새로운 건 없었다.

    다만 조건문에서 오랜만에 보는 것이 있었다.

    (조건문) ? 참일 때 값 : 거짓일 때 값;

     

    3항 연산자인데, 유용하게 쓸 수 있는 것이지만 그냥 if 문으로도 구현할 수 있기 때문에 안 쓰다가 어느 새 기억 속에서 사라진 것이었다. 그래서 이번에 복습하는 느낌으로 다시 떠올릴 수 있어서 좋았다.

    아직 2주차 강의가 조금 남았는데 그건 내일 시청할 예정이다.

     

    [회고]

    이번주는 특별한 팀 프로젝트 없이 계속 개인 C# 강의로 진행될 거 같다. 다른 건 다 괜찮은데 졸음 참는 게 너무 힘들었다. 혼자서 녹화된 강의만 수 시간 듣는 게 너무 힘들었다. 난이도가 있었다면 모르겠지만 다른 언어를 배운 경험 때문에 어렵지 않아서, 더 졸렸던 거 같다. 내일은 강의 듣다가 졸음이 몰려오면 개인 과제를 진행해봐야겠다.