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() 활용을 권장합니다.