Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 한 줄로 여러 값 입력받는 방법 총정리


C#에서 사용자로부터 여러 값을 입력받는 가장 기본적인 방법은 Console.ReadLine() 메서드를 활용하는 것입니다. 특히 공백으로 구분된 여러 값을 한 줄에서 동시에 받으려면 Split() 메서드를 함께 사용하면 효율적입니다.

한 줄에서 여러 값 입력받기

사용자가 공백으로 구분해 입력한 값들을 한 번에 읽어 정수 배열로 변환하려면 다음과 같이 작성할 수 있습니다.

// 입력: "10 20 30" 과 같이 공백으로 구분된 값
int[] arr = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);

이 방식은 반복문 없이도 한 줄의 입력을 여러 개의 개별 값으로 나눠 저장할 수 있어 코드가 훨씬 간결해집니다.

행렬(Matrix) 요소 입력 예제

예를 들어 행렬의 각 요소를 차례대로 입력받아야 하는 경우, 이중 반복문(for 루프)과 Console.ReadLine()을 조합하면 손쉽게 처리할 수 있습니다.

Console.Write("\nEnter elements - Matrix 1 : ");
for (i = 0; i < m; i++) {
    for (j = 0; j < n; j++) {
        arr1[i, j] = Convert.ToInt16(Console.ReadLine());
    }
}

위 코드는 바깥쪽 루프가 행(row)을, 안쪽 루프가 열(column)을 순회하면서 각 위치마다 사용자로부터 값을 하나씩 읽어 2차원 배열에 저장합니다.

전체 예제 코드

다음은 C#에서 사용자로부터 여러 값을 입력받는 과정을 보여주는 완전한 예제입니다.

using System;

namespace Demo {
    public class Program {
        public static void Main(string[] args) {
            int[] arr1 = new int[10, 10];
            int i, j;

            Console.Write("\nEnter Matrix elements: ");
            for (i = 0; i < 3; i++) {
                for (j = 0; j < 3; j++) {
                    arr1[i, j] = Convert.ToInt16(Console.ReadLine());
                }
            }
        }
    }
}

실행 결과

Enter Matrix elements:

참고: Convert.ToInt16() 대신 int.Parse()나 Convert.ToInt32()를 사용하면 더 넓은 범위의 정수를 안전하게 처리할 수 있으며, 입력값 검증이 필요하다면 int.TryParse() 활용을 권장합니다.