C# 으로 사용자 입력을 받아 동작하는 콘솔 프로그램 구현

Oct 4, 2022 | 0 comments

네이버 지식인에서 우연히 보게 된 누군가의 질문…

c# 콘솔 형태의 프로그램이며, 일정 갯수의 숫자를 데이터로 입력 받아 최대값/최소값 등을 구하거나 종료할 수 있는 기능을 하는 프로그램이 요구사항 이었다

내가 답변한 원문은 여기 : C# 프로그래밍 질문 : 지식iN (naver.com)

네이버 지식인 링크

실제 프로그램이 실행되는 스크린샷은 다음 이미지와 같습니다.

프로그램이 실행되면 메뉴 설명을 출력합니다.

메뉴 선택에서 0~3 까지 숫자를 입력 받아 메뉴 선택의 용도로 입력을 받습니다

메뉴 선택에서 0 을 입력해서 5개의 숫자를 입력 받은 후

다시 메뉴 선택에서 1 을 입력 시 최소값을, 2 를 입력시 최대값을 출력합니다.

메뉴 선택에서 0 을 다시 입력해서 데이터를 새롭게 입력할 수 도 있겠죠

메뉴 선택에서 3 을 입력하면 프로그램은 종료됩니다.

진입점(Main) 에서 모두 처리하였으며, 소스 코드는 다음과 같습니다.

namespace ConsoleAppUserInput
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(@"
=================================
0. 데이터 입력(5개)
1. 최소값
2. 최대값
3. 프로그램 종료
=================================
");
            List<double> dataList = new List<double>();
            bool isDataInput = false;
            bool isExit = false;
            double? input;

            Func<double?> fnInput = () =>
            {
                double rtn;
                var input = Console.ReadLine();
                if (Double.TryParse(input, out rtn))
                {
                    return rtn;
                }
                return null;
            };

            Func<bool> fnDataInput = () =>
            {
                Console.WriteLine($"{dataList.Count + 1}번째 값 입력:");
                var data = fnInput();
                if (data == null)
                {
                    Console.WriteLine("숫자를 입력해 주세요.");
                }
                else
                {
                    dataList.Add(data.Value);
                    if (dataList.Count == 5) return false;
                }
                return true;
            };

            do
            {
                if (isDataInput)
                {
                    if (!fnDataInput())
                    {
                        isDataInput = false;
                    }
                }
                else
                {
                    Console.WriteLine("메뉴 선택:");
                    input = fnInput();
                    switch (input)
                    {
                        case 0:
                            dataList.Clear();
                            isDataInput = true;
                            fnDataInput();
                            break;
                        case 1:
                            if (dataList.Count > 0)
                            {
                                Console.WriteLine($"최소값: {dataList.Min()}");
                            }
                            else
                            {
                                Console.WriteLine("0번 메뉴를 선택해서 데이터를 입력하세요.");
                            }
                            break;
                        case 2:
                            if (dataList.Count > 0)
                            {
                                Console.WriteLine($"최대값: {dataList.Max()}");
                            }
                            else
                            {
                                Console.WriteLine("0번 메뉴를 선택해서 데이터를 입력하세요.");
                            }
                            break;
                        case 3:
                            isExit = true;
                            break;
                        default:
                            Console.WriteLine("1~3까지 메뉴를 선택하세요.");
                            break;
                    }
                }
            }
            while (!isExit);
        }
    }
}

개발 환경은 VS 2022 .Net 6 Console App 으로 구현하였으며, 전체 소스 코드는 아래 GitHub 에 등록되어 있습니다.

Learn more on this topic

Related Blog Posts

Blazor bootstrap theme sample

Blazor bootstrap theme sample

전체 소스 코드는 다음 Github 의 BlazorBootswatchTheme 폴더에 있습니다 .net 으로 생성된 blazor wasm 기본 템플릿은 bootstrap 을 기반으로 하고 있습니다. 그리고 bootstratp 을 기반으로 다양한 테마를 제공하는 bootswatch 오픈소스 프로젝트가 있습니다. MIT 라이센스이며 다양한 테마가 존재합니다. 다양한 테마 목록은 여기(https://bootswatch.com/)를 클릭해서 확인해 보시기 바랍니다. 현재...

read more

Join in the conversation

Leave a Comment

0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

cloud app service

전광판

텍스트를 입력하고 텍스트 효과 및 배경효과 를 변경해서 전체화면으로 표시할 수 있는 전광판 용도로 사용하실 수 있습니다. 각종 스포츠 및 공연 관람시 응원 용도로 사용이 가능합니다.

Carousel

여러개의 슬라이드를 추가하여 프레젠테이션 및 이미지 슬라이드 용도로 사용하실 수 있습니다. 브라우저가 포함된 IT 기기로 큰 모니터에 연결하여 매장 내 공지사항 및 메뉴소개를 이미지로 표시할 수 있습니다.

타이머

지정된 시간이 경과한 후 소리로 알려주는 타이머 기능을 하고 있습니다.

Pin It on Pinterest

Shares
Share This

Share This

Share this post with your friends!

Shares