프로그램/C# - Study / / 2010. 9. 10. 11:41

5D - 메소드를 활용하여 박스 그리기

반응형


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ex07Method
{
    class Program
    {
        static void Main(string[] args)
        {
            //Box 그리기 ( 20 * 20 , '*' )
            //***************************
            //*                         *
            //*                         *
            //*                         *
            //***************************

            Console.Write("박스 그리기에 사용할 문자 : ");
            string unit = Console.ReadLine();

            //넓이, 높이를 입력받아서 그대로 박스 그리기
            int nums_1, nums_2; // 넓이와 높이 변수 생성

            //Console.Write("높이 입력 : ");
            //nums_1 = int.Parse(Console.ReadLine());

            //Console.Write("넓이 입력 : ");
            //nums_2 = int.Parse(Console.ReadLine());

            //간단히 메서드를 활용하여 높이 넓이 입력 방법

            nums_1 = InputInt("박스의 높이 : "); //높이를 입력하면 InputInt메서드의 return 값을 nums_1에 저장

            nums_2 = InputInt("박스의 넓이 : ");        


           

            //메서드 호출
            DrawBox(unit, nums_1, nums_2);  // DrawBox 에 unit 을 전달
                                            // 높이와 넓이도 뒤에 써주어 전달

        }

        private static int InputInt(string message) // 박스의 높이/박스의 넓이 string을 받아온다
        {
            Console.Write("{0} : ", message); // 받아온 string 값을 출력
            int data = int.Parse(Console.ReadLine()); // 입력된 값 data 에 저장
            //메서드를 종료하고 호출하는 곳으로 data를 반환
            //반환되는 데이터는 타입은 메서드 선언부에 표시되어야 합니다.
            //복수의 데이터를 반환할 수 없습니다.
            return data; //입력한 값을 return  시킨다.
        }


        //★쉽게 메서드 만들기★  메서드만들려는 소스를 블록을 지정을 하고 마우스 오른쪽 클릭
        //리팩터링 - > 메서드 추출 후 이름 이정하고 확인하면 바로 만들어진다.

        // 메서드 정의
        private static void DrawBox(string unit, int nums_1, int nums_2)  // unit 내용 전달 받아 unit 출력
        {
            for (int i = 1; i <= nums_1; i++)
            {
                for (int j = 1; j <= nums_2; j++)
                {
                    if (i < 2 || i == nums_1 || j == 1 || j == nums_2)
                    {
                        Console.Write(unit);
                    }
                    else
                    {
                        Console.Write(" ");
                    }
                }
                Console.WriteLine();
            }
        }
    }
}
/**************************************************************
 * Method
 * 1. 실행문 집한 (하나 이상의 실행문을 모아둔 것)
 * 2. 모듈화 / 재사용
 * 3. 형식
 *    결과형 이름(전달인자 목록)
 *    {
 *        실행문;
 *    }
 *    4. 메서드는 정의와 호출 로 작동됩니다.
 *       정의 : 메서드를 만드는 것
 *       호출 : 메서드의 코드가 실행되로록 하는 것
 *
 * {...}
 * ==> 중괄호 안에서 선언된 이름은 선언된 중괄호 내부에서만 사용가능
 *
 *
 * ************************************************************/

반응형

'프로그램 > C# - Study' 카테고리의 다른 글

5D - 메소드, 오버로딩  (0) 2010.09.10
5D - 메소드 전달인자 ( ref, out )  (0) 2010.09.10
4D - for문  (0) 2010.09.09
4D - while문 , continue 제어, goto 제어  (0) 2010.09.09
4D - while문 반복문  (0) 2010.09.09
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유