C#

[이것이 C#이다. 3판] Chapter 05 코드의 흐름 제어하 연습문제

돌맹96 2023. 7. 19. 23:33
728x90
반응형

01 다음과 같은 결과를 출력하는 프로그램을 for 문을 이용하여 작성하세요. 규칙은 첫 번째 줄에 별 1개, 두번째 줄에 별 2개, 세 번째 줄에 별 3개... 이런 식으로 별 5개가 찍힐 때까지 반복합니다.(힌트 : for 문 블록 안에 for 문 블록을 넣으세요).

for(int i = 0; i < 5; i++)
{
    for(int j = 0; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

02 다음과 같은 결과를 출력하는 프로그램을 for 문을 이용하여 작성하세요.

namespace Test05
{
    internal class Program
    {
        static void Main(string[] args)
        {
            for(int i = 0; i < 5; i++)
            {
                for(int j = i; j < 5; j++) 
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }

        }
    }
}

03 1번과 2번을 for 문 대신 while문과 do문으로 바꿔서 각각 작성하세요.

namespace Test05
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            while (i < 5)
            {
                int j = i;
                do 
                {
                    Console.Write("*");
                    j++;
                }while (j < 5) ;
                i++;
                Console.WriteLine();
            }

        }
    }
}

2번만 while과 do를 섞어서 만들었다.

 

04 다음과 같이 사용자로부터 입력받은 횟수만큼 별을 반복 출력하는 프로그램을 작성하세요. 단, 입력받은 수가 0보다 작거나 같을 경우 '0보다 같거나 작은 숫자는 사용할 수 없습니다.'라는 메시지를 띄우고 프로그램을 종료합니다.

namespace Test05
{
    internal class Program
    {
        static void Main(string[] args)
        {
            
            Console.Write("반복 횟수를 입력하세요.");
            string input = Console.ReadLine();

            int Int_input = int.Parse(input);

            if(Int_input < 0)
            {
                Console.WriteLine("0보다 같거나 작은 수는 사용할 수 없습니다.");
                return;
            }
            else
            {
                for (int i = 0; i < Int_input; i++)
                {
                    for (int j = 0; j <= i; j++)
                    {
                        Console.Write("*");
                    }
                    Console.WriteLine();
                }
            }

        }
    }
}

05 다음 Fibonacci 클래스의 GetNumber() 메소드에서 switch 문을 switch 식으로 변경하세요.

switch 문

namespace Test05
{
    internal class Program
    {
        public static long GetNumber(long index)
        {
            long result = 0;
            switch(index) 
            {
                case 0:
                    result = 0; 
                    break;
                case 1:
                    result = 1;
                    break;
                default:
                    result = GetNumber(index - 1) + GetNumber(index - 2); 
                    break;
            }
            return result;  
        }
    }
}

switch  식

namespace Test05
{
    internal class Program
    {
        public static long GetNumber(long index) =>
            index switch
            {
                0 => 0,
                1 => 1,
                _ => GetNumber(index - 1) + GetNumber(index - 2),
            };
    }
}
728x90
반응형