switch case 문은 c++를 잠깐 배웠을때 내가 많이 어려워했던 것 같다.
while문과 함께 쓰곤 했던 것으로 기억하는데 배제하고 switch case 자체만 보면
int x = 5;
switch(x)
{
case 1:
Console.WriteLine("치킨을 주문하자.");
break;
case 2:
Console.WriteLine("피자를 주문하자.");
break;
default:
Console.WriteLine("마라탕을 주문하자.");
break;
}
변수를 하나 두고 (스위치문 괄호 안에 있는 변수)
만약 변수에 맞는 조건이 case문에 있다면 해당 로직이 실행된다 보면 될 것 같다.
그리고 나서 break 문을 씀으로서 빠져나간다. default는 해당하는 case 가 없다면 출력된다.
cotinue는 break와는 다르게 조건에 따라 해당 진행을 일부분 생략하고 진행합니다.
for (int i = 0; i < 5; i++)
{
if (i == 3)
{
continue;
}
Console.WriteLine(i + "번째 반복입니다.");
}
// "0 번째 반복입니다."
// "1 번째 반복입니다."
// "2 번째 반복입니다."
// "4 번째 반복입니다."
// 3 에서 continue 로 인해 해당 반복의 내용은 실행 안하고 다음으로 넘어갔습니다.
만약 break 가 continue 대신 있었다면 2번째 반복까지 한 후 종료되었을겁니다.
함수는 반환형식 함수 이름으로 구분 되어있다.
void makerain ()
(반환형식) (함수 이름) (매개변수)
return은 밑에 있는 모든 기능을 캔슬하고 함수를 종료합니다
따라서 조건에 따라 return을 써주려면 조건문을 써서 일정한 조건일 때 실행되도록 해야합니다.
그리고 return을 써줌으로서 변수에 값을 입력할 수 도 있습니다.
다만 void 는 함수의 결과를 사용하지 않겠다 라는 뜻의 반환 형식이기에
int를 반환 형식으로 쓰고 조건에 따라return 100; 과 같이 사용할 순 있습니다.
int GetPoint()
{
Console.WriteLine("보상으로 100 포인트를 획득합니다.");
반환값이 없다!! <- 에러
}
//만약 void 가 아닌 반환 타입을 지정하였다면 return 으로 반드시 반환값을 부여해야합니다.
매개 변수는 함수의 괄호 안에 변수를 넣는 것을 의미합니다.
void Attack()
{
if(hp < 1)
{
return;
}
--hp;
Console.Wrie("데미지 : 1 현재 체력 : " + hp);
}
Attack 함수는 실행할 때 마다 체력이 1씩 깎이게 되는데 여기에 1이 아닌 다른 데미지의
특수 공격을 지정할 때가 있을 것이다.
void Attack(int damage)
{
if(hp < 1)
{
return;
}
hp -= damage; <- 데미지 적용
Console.Write("데미지 : " + damage + " 현재체력 : " + hp);
}
매개 변수를 사용하면 후에 함수를 호출할 때 괄호의 값에 따라 체력이 깎이게 되며 이에 따라 출력이 될 것이다.
함수를 호출하면서 괄호에 3을 적어주었다 따라서 int damage의 값은 3이 되고 이를 따라 연산한다.
연달아 함수를 써주게 된다면 각각 매개변수의 값이 괄호안의 값에 따라 달라져 연산 될 것이다.
int hp는 0이 되었고 이 다음에 함수를 쓰더라도 return 조건문으로 인해 함수는 체력에 영향을 주지 않는다.
또한 매개변수는 여러개를 사용할 수 있는데
순서에 맞게 사용해야 오류가 발생하지 않고 정상적으로 작동한다.
며칠동안 지속되었던 유니티 오류가 고쳐져서 다행인 것 같다. 버전에 따른 오류였다니 생각치도 못했다.
'TIL' 카테고리의 다른 글
2024 09 10 TIL (1) | 2024.09.10 |
---|---|
2024 09 09 TIL (0) | 2024.09.09 |
2024 09 05 TIL (2) | 2024.09.05 |
2024 09 04 TIL (3) | 2024.09.04 |
2024 09 03 TIL (1) | 2024.09.03 |