[TIL] C# 기초 - day 3

뭉크의 개발·2023년 7월 21일

C# - Pre-Camp

목록 보기
6/7
post-thumbnail

🐧 들어가기 앞서

TIL을 너무 막 올렸다.

앞으로는 체계적으로 룰이 필요할듯.

  • TIL은 하루에 한 포스트,
  • 순서
  1. 내가 배운 것.
  2. 기억할 것.
  3. 게임에 구현한다면?
  4. 강의 최~~대한 내용 넣지 않기.

🐧 오늘 배운 것

배열, for each, 함수, OOP, class, 객체


🐧 기억할 것.

foreach 구문

-> 조건식 쓰지 않고 해당 배열 처음부터 끝까지 반복
반복변수 타입 = 배열의 타입

foreach(변수타입 반복변수 in 배열)
{
	실행 내용
}
string[] country = new string[3] { "스웨덴", "노르웨이", "핀란드" };
foreach(string NorthEurope in country)
{
	Console.WriteLine(country);
}

배열 생성과 동시에 초기화 하는 법

string[] game = new string[3] {"어쌔신 크리드", "C&C General", "Battle Field"};
int[] year = new int[4] {2020, 2021, 2023, 2099};

단! 배열 크기에 맞게 데이터 전부 입력해야함.


꿀팁

// 생성과 동시에 초기화하면 배열 크기 입력안해도 괜찮다.
string[] game = new string[] {"어쌔신 크리드", "C&C General", "Battle Field"};

// 암시적으로 작성, 배열 형태 생략할 수 있음.
string[] game = {"어쌔신 크리드", "C&C General", "Battle Field"};

$ 사용하기.

$를 이용해서 간편하게 입력할 수 있다.

string name = "<name>";
Console.WriteLine("Hi, " + name + ". It's a pleasure to meet you!");

보다 간편하게 사용하려면 $를 이용한다.

string name = "<name>";
Console.WriteLine("Hi, {name}. It's a pleasure to meet you!");

다른 자료형도 사용가능.

var name = "<name>";
int cool = 32;
Console.WriteLine($"Hi, Munch. {cool} What did you weekends?" + cool);

오류 해결

객체에 대해 배우는 도중, 오류가 생겼다.

Character myCharacter = new Character();
myCharacter.userName = "chad";
myCharacter.job = "전사";
myCharacter.level = 20;

myCharacter.IntroduceCharacter();
class Character
{
        string userName;
        string job;
        int level;

        public void IntroduceCharacter()
        {
            Console.WriteLine("제 이름은 " + userName + "입니다");
        }
}

public, private, protected 문제다.
Character 속 객체(+ 클래스) 앞에 따로 선언을 해주지 않으면 자동으로 private로 선언된다.

따라서 접근할수가 없었음!

Character myCharacter = new Character();
myCharacter.userName = "chad";
myCharacter.job = "전사";
myCharacter.level = 20;

myCharacter.IntroduceCharacter();
public class Character
{
        public string userName;
        public string job;
        public int level;

        public void IntroduceCharacter()
        {
            Console.WriteLine("제 이름은 " + userName + "입니다");
        }
}

해결!


🐧 게임에 구현한다면?

using System;
Console.WriteLine("아이템을 몇개 사용하시겠습니까?");

string itemCnt = Console.ReadLine();
int intItemCnt = Convert.ToInt32(itemCnt);
int itemHave = 30;
itemUsing();

int itemUsing()
{
    if (intItemCnt < 1)
    {
        Console.WriteLine("유효하지 않은 값입니다.");
        return 0;
    }
    else if(itemHave >= intItemCnt){
        Console.WriteLine("아이템을 " + intItemCnt + "개 사용하였습니다." + (itemHave-intItemCnt) + "개 남았습니다.");
        return intItemCnt;

    }

    else
    {
        Console.WriteLine("인벤토리의 수량보다 사용 갯수가 많습니다. 아이템 사용 개수를 다시 한 번 확인해주세요!");
        return 0;
    }
}



0개의 댓글