[Unity] TIL 9 퀘스트

qkrrlcks00·2024년 8월 26일

Q3. 본격 프로그래밍 시작해보기


Console.ReadLine(); 이라는 함수가 있습니다.
이 함수를 이용하면 프로그램 실행 중 데이터를 입력받을 수 있습니다.
1번

string input = Console.ReadLine();
int num;
bool isInt = int.TryParse(input, out num);  

if (isInt)
{
    Console.WriteLine("숫자입니다.");
}

else
{
    Console.WriteLine("문자열입니다.");
}

2번

string input = Console.ReadLine();
int num;
bool isInt = int.TryParse(input, out num);
bool b;
bool isbool = bool.TryParse(input, out b);  

if (isInt)
{
    Console.WriteLine("숫자입니다.");
}

else if (isbool)
{
    Console.WriteLine("불리언입니다.");
}

else
{
    Console.WriteLine("문자열입니다.");
}

3번

string input = Console.ReadLine();
int num;
bool isInt = int.TryParse(input, out num);

if (isInt)
{
    if (num >= 100)
    {
        Console.WriteLine(input + "은(는) 100보다 같거나 큰 수 입니다.");
    }
    else 
    {
        Console.WriteLine(input + "은(는) 100보다 작은 수입니다.");
    }
}
else
{
    Console.WriteLine("숫자가 아닙니다.");
}

4번

string input = Console.ReadLine();
int num;
bool isInt = int.TryParse(input, out num);

if (isInt)
{
    int remainder = num % 2;
    if (remainder == 0)
    {
        Console.WriteLine(input + "은(는) 짝수입니다.");
    }
    else 
    {
        Console.WriteLine(input + "은(는) 홀수입니다.");
    }
}
else
{
    Console.WriteLine("숫자가 아닙니다.");
}

5번
조건이 많고 복잡하다면 if문을, 단일 변수의 특정 값에 따라 분기해야 한다면 switch문을 사용해야합니다.

3번 문제를 풀며

TryParse를 처음 사용해봐서 처음에는 감도 안왔는데 이번 퀘스트를 통해 TryParse에 조금 익숙해진 것 같다.
그리고 %를 이용해 짝수홀수 구하는것처럼 생각지도 못한 방법들을 보고 다시한번 놀랐다.

Q4 숫자..인가요?


1번

Console.WriteLine("첫번째 수를 입력해주세요.");
string input1 = Console.ReadLine();
int num1;
bool isInt1 = int.TryParse(input1, out num1);
           
Console.WriteLine("두번째 수를 입력해주세요.");
string input2 = Console.ReadLine();
int num2;
bool isInt2 = int.TryParse(input2, out num2);

if(isInt1 && isInt2)
{
    Console.WriteLine("두 데이터는 모두 숫자입니다.");
}
else
{
    Console.WriteLine("숫자가 아닙니다.");
}

2번

Console.WriteLine("첫번째 수를 입력해주세요.");
string input1 = Console.ReadLine();
int num1;
bool isInt1 = int.TryParse(input1, out num1);
           
Console.WriteLine("두번째 수를 입력해주세요.");
string input2 = Console.ReadLine();
int num2;
bool isInt2 = int.TryParse(input2, out num2);

if(isInt1 && isInt2)
{
    Console.WriteLine("두 데이터는 모두 숫자입니다.");
}
else if (isInt1 || isInt2)
{
    Console.WriteLine("하나의 데이터만 숫자입니다.");
}
else 
{
    Console.WriteLine("두 데이터 모두 숫자가 아닙니다.");
}  

3번

Console.WriteLine("첫번째 수를 입력해주세요.");
string input1 = Console.ReadLine();
int num1;
bool isInt1 = int.TryParse(input1, out num1);
           
Console.WriteLine("두번째 수를 입력해주세요.");
string input2 = Console.ReadLine();
int num2;
bool isInt2 = int.TryParse(input2, out num2);

if (isInt1 && isInt2)
{
    Console.WriteLine("두 데이터는 모두 숫자입니다.");
    if (num1 == num2)
    {
        Console.WriteLine(num1 + "(와)과" + num2 + "은(는) 같습니다.");
    }
    else if (num1 > num2)
    {
        Console.WriteLine(num1 + "(은)는" + num2 + "보다 큽니다.");
    }
    else
    {
        Console.WriteLine(num1 + "(은)는" + num2 + "보다 작습니다.");
    }
}

else
{
    Console.WriteLine("두 개의 숫자를 입력해주세요.");
}  

4번 문제를 풀며

tryparse도 한번 더 써보고 조건부 논리연산자를 써보는 좋은 경험

Q5. 대한민국의 수도는?


while (true)
{
    Console.WriteLine("대한민국의 수도는 어딩인가요?");
    Console.WriteLine("1.인천   2.평창   3.서울   4.부산");
    string input = Console.ReadLine();
    int num;
    bool isInt = int.TryParse(input, out num);
    if (isInt)
    {
        if (1 <= num && 4 >= num)
        {
            if (num == 3)
            {
                Console.WriteLine("정답입니다!");
                break;
            }
            else
            {
                Console.WriteLine("오답입니다!");
            }
        }
        else
        {
            Console.WriteLine("1~4의 숫자를 입력해주세요.");
        }
    }
    else
    {
        Console.WriteLine("숫자가 아닙니다.");
    }
}

5번 문제를 풀며

if문을 사용할때 else if(조건)으로 장황하게 썻었는데
답안에 else로 간단하게 써있는걸 보고 다시한번 간결하게 쓰려고 노력해봐야겟다.

Q6. 여행을 떠나요


 Console.WriteLine("어디로 여행을 가고 싶나요??");
 Console.WriteLine("1.제주도   2.코타키나발루   3.싱가포르   4.태국");
 string input = Console.ReadLine();
 int num;
 bool isInt = int.TryParse(input, out num);
 if (isInt)
 {
     switch (num)
     {
         case 1:
             Console.WriteLine("제주도는 한국의 섬으로 비교적 방문이 쉽고 다양한 놀거리/먹거리가 준비되어 있습니다.");
             break;
         case 2:
             Console.WriteLine("코타키나발루는 말레이시아 사바주의 주도로, 말레이시아 동부 보르네오섬 최대의 도시입니다.");
             break;
         case 3:
             Console.WriteLine("싱가포르는 동남아시아, 말레이 반도의 끝에 위치한 섬나라이자 항구 도시로 이루어진 도시 국가입니다.");
             break;
         case 4:
             Console.WriteLine("태국은 중국문화, 말레이문화, 불교문화, 힌두문화, 이슬람 문화가 혼재되어 있습니다. 불교적인 모습을 많이 띄지만, 문화 자체는 색다르고 스펙트럼이 넓은 형태를 띄고 있어요.");
             break;

         default:
             Console.WriteLine("1~4 의 숫자를 입력해주세요.");
             break;
     }
 }
 else
 {
     Console.WriteLine("숫자가 아닙니다.");
 }

Q7. 이름 찾기!


bool isSuccess;

do
{
    Console.WriteLine("이름을 입력해주세요.(3~10글자)");
    string input = Console.ReadLine();
    int length = input.Length;
    Console.Clear();
    if (length <= 10 && length >= 3)
    {
        Console.WriteLine("안녕하세요! 제 이름은" + input + "입니다.");
    }
    else
    {
        Console.WriteLine("이름을 확인해주세요.");
    }
    isSuccess = input.Length >= 3 && input.Length <= 10;
}
while (!isSuccess);

7번 문제를 풀며

굳이 do while문 아니고 그냥
if문에 break 걸면 될것같은데?

0개의 댓글