사전캠프/걷기반

걷기반 Lv.2 여행을 떠나요

서보훈 2024. 8. 19. 15:04

1. 주어진 보기를 선택하면 해당하는 선택지에 맞는 메시지 출력해주세요.

  • 어디로 여행을 가고 싶나요? 1.제주도 2.코타키나발루 3.싱가포르 4.태국
    • 입력한 데이터가 숫자가 아니라면 “숫자가 아닙니다.”를 출력해주세요
    • 1 ~ 4 가 아니라면 “1~4 의 숫자를 입력해주세요.” 를 출력해주세요
    • 1 ~ 4 의 숫자라면
      • 제주도 “제주도는 한국의 섬으로 비교적 방문이 쉽고 다양한 놀거리/먹거리가 준비되어 있습니다.”
      • 코타키나발루 “코타키나발루는 말레이시아 사바주의 주도로, 말레이시아 동부 보르네오섬 최대의 도시입니다.”
      • 싱가포르 ”싱가포르는 동남아시아, 말레이 반도의 끝에 위치한 섬나라이자 항구 도시로 이루어진 도시 국가입니다.”
      • 태국 ”태국은 중국문화, 말레이문화, 불교문화, 힌두문화, 이슬람 문화가 혼재되어 있습니다. 불교적인 모습을 많이 띄지만, 문화 자체는 색다르고 스펙트럼이 넓은 형태를 띄고 있어요.”

정수형 입력을 받아서, 1 ~ 4 사이의 입력일경우 각각 다른 출력을 발생시키는 코드를 작성해야 합니다.

이전에 정답맞추기와 다르게, 출력값이 모두 다르기때문에 해당 문제는 switch문을 사용하는것이 좋습니다.

 

또한 숫자 여부를 판단해야하기 때문에 TryParse문을 사용합니다.

코드를 작성해보도록 하겠습니다.

{
    //질문 출력
    Console.WriteLine("어디로 여행을 가고 싶나요?");
    Console.WriteLine("1.제주도  2.코타키나발루  3.싱가포르  4.태국");

    //입력 받아주기
    string input = Console.ReadLine();
    int inputNum;

    //정수형인지 판별하는 if문
    if(int.TryParse(input, out inputNum))
    {
        //switch문을 사용한 출력
        switch(inputNum)
        {
            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("숫자가 아닙니다.");
    }
}

대한민국의 수도는? 문제에서와 비슷하게, switch문을 사용하여 코드를 작성하였습니다.

이전에 설명했다싶이, switch문에 사용할 변수를 넣어서 해당 변수와 같은값이 case문에 있을경우 해당 case문을 실행하고, 없으면 default문 default가 없으면 switch문을 실행하지 않게 됩니다.

 

만약 이 코드를 if문으로만 짜게 됩니다면 이렇게 됩니다.

{
    {
        //질문 출력
        Console.WriteLine("어디로 여행을 가고 싶나요?");
        Console.WriteLine("1.제주도  2.코타키나발루  3.싱가포르  4.태국");

        //입력 받아주기
        string input = Console.ReadLine();
        int inputNum;

        //1.정수형인지 판별하는 if문
        if (int.TryParse(input, out inputNum))
        {
            //2. 1 ~ 4 사이인지 판단하는 if문
            if(inputNum >= 1 && inputNum <= 4)
            {
                //3. 1일경우 if결과
                if(inputNum == 1)
                {
                    Console.WriteLine("제주도는 한국의 섬으로 비교적 방문이 쉽고 다양한 놀거리/먹거리가 준비되어 있습니다.");
                }
                //3. 2일경우 if결과
                if (inputNum == 2)
                {
                    Console.WriteLine("코타키나발루는 말레이시아 사바주의 주도로, 말레이시아 동부 보르네오섬 최대의 도시입니다.");
                }
                //3. 3일경우 if결과
                if (inputNum == 3)
                {
                    Console.WriteLine("싱가포르는 동남아시아, 말레이 반도의 끝에 위치한 섬나라이자 항구 도시로 이루어진 도시 국가입니다.");
                }
                //3. 4일경우 if결과
                if (inputNum == 4)
                {
                    Console.WriteLine("태국은 중국문화, 말레이문화, 불교문화, 힌두문화, 이슬람 문화가 혼재되어 있습니다. 불교적인 모습을 많이 띄지만, 문화 자체는 색다르고 스펙트럼이 넓은 형태를 띄고 있어요.");
                }

            }
            else
            {
                //1 ~ 4사이가 아닌경우
                Console.WriteLine("1 ~ 4 의 숫자를 입력해주세요.");
            }
        }
        else
        {
            //정수형이 아닐경우
            Console.WriteLine("숫자가 아닙니다.");
        }
    }
}

if문에 부합하는 값이 없고, else문이 없을경우 해당 if문 자체를 실행하지 않게 되기 때문에 if문을 나열하여 처리할 수 있습니다.