CodeGym /행동 /C# SELF /키보드 입력

키보드 입력

C# SELF
레벨 2 , 레슨 5
사용 가능

1. 소개

지금까지 우리가 만든 프로그램들은 라디오처럼 한 방향으로만 말했지, 네가 뭐라고 해도 반응하지 않았어. 당연히 이러면 재미없지! 대부분의 프로그램 목적은 사용자에게 뭔가 쓸모 있는 걸 해주는 거야. 그래서 사용자가 키보드로 데이터를 입력할 수 있게 해줘야 할 때가 많아.

예를 들어:

  • 계산기는 네가 숫자랑 연산을 입력하길 기다려.
  • 웹사이트 폼은 네 이름, 이메일, 주소를 받아서 신청서를 처리해.
  • 컴퓨터 게임은 플레이어 이름을 물어봐.

오늘은 우리 앱에 마이크를 달아줄 거야! 아니면 귀라고 해도 되고 :) 준비됐지? 가자!

2. Console.ReadLine()과 친해지기

Console.ReadLine()은 프로그램이 사용자가 키보드로 입력한 데이터를 받을 수 있게 해주는 함수(혹은 "명령어")야.

프로그램이 Console.ReadLine() 명령에 도달하면, 프로그램은 멈추고... 네가 뭔가 입력하고 Enter를 누를 때까지 조용히 기다려. 네가 Enter 누르기 전까지 입력한 모든 게 하나의 문자열로 받아져. 이 문자열이 프로그램으로 돌아가 — 마치 사용자가 창구에 쪽지를 건네주는 것처럼.

기본 예제

// 사용자에게 이름을 물어보고 인사해보자
Console.WriteLine("너 이름이 뭐야?");
string userName = Console.ReadLine(); 				// 여기서 프로그램이 입력을 기다려!
    
Console.WriteLine("안녕, " + userName + "!");

어떻게 동작하냐면:

  • 화면에 이렇게 떠: 너 이름이 뭐야?
  • 네가 예를 들어 안드레이라고 입력하고 Enter를 눌러.
  • userName 변수에 "안드레이"가 저장돼.
  • 화면에 이렇게 나와: 안녕, 안드레이!

바로 주의할 점: Console.ReadLine()이 반환하는 건 항상 문자열(타입 string)이야. 사용자가 숫자를 입력해도, 그건 그냥 문자열이야!

3. 예제들

Console.ReadLine()이 실제로 어떻게 쓰이는지 보자.

예제 1: 사용자 이름 입력받기

Console.WriteLine("네 이름을 입력해줘:");
string name = Console.ReadLine();
Console.WriteLine("환영해, " + name + "!");

예제 2: 한 줄에 결과 출력하기

+ 연산자를 써서 텍스트랑 입력값을 바로 합칠 수 있어.

Console.Write("네가 좋아하는 색깔: ");
string color = Console.ReadLine();
Console.WriteLine("멋지다! 네가 좋아하는 색깔은 " + color + "이야.");
참고:

이 예제에서는 Console.Write(줄바꿈 없이)를 써서, 질문 바로 뒤에 사용자가 입력할 수 있게 했어.

예제 3: 여러 번 입력받기

미니 설문지를 만들어보자:

Console.Write("이름이 뭐야? ");
string name = Console.ReadLine();

Console.Write("몇 살이야? ");
string age = Console.ReadLine(); // 일단 문자열로 받아

Console.WriteLine("네 이름은 " + name + "이고, 나이는 " + age + "살이구나.");

이렇게 보일 거야:

이름이 뭐야? 비카
몇 살이야? 23
네 이름은 비카이고, 나이는 23살이구나.

4. 숫자 데이터 입력: 변환

여기서 초보자들이 자주 빠지는 함정이 있어! Console.ReadLine()은 항상 문자열을 반환해, 사용자가 123을 입력해도 마찬가지야.

숫자를 받고 싶으면, 문자열을 원하는 숫자 타입(예: int)으로 바꿔야 해. C#에서는 변환 메서드, 예를 들어 int.Parse()Convert.ToInt32()를 써. 이건 지난 강의에서 이미 얘기했지.

예제: 나이 물어보기

Console.Write("몇 살이야? ");
string input = Console.ReadLine();         // 예를 들어 input = "27"
int age = int.Parse(input);                // 문자열 "27"을 숫자 27로 변환
Console.WriteLine("1년 뒤엔 " + (age + 1) + "살이 될 거야");
주의:

사용자가 숫자가 아닌 걸 입력하면 프로그램이 에러(FormatException)를 던져. 나중에 더 안전한 코드를 만드는 법도 배울 거지만, 간단한 실험엔 이 정도면 충분해.

5. 꼭 만나게 될 실수들

숫자로 변환하는 걸 까먹었을 때:

Console.ReadLine()에서 받은 값을 변환 없이 숫자로 쓰려고 할 때.

string input = Console.ReadLine();
int sum = input + 5; // 에러! 문자열은 숫자랑 더할 수 없어.

int로 변환해야 해:

int sum = int.Parse(input) + 5;

변수를 선언 안 했을 때:

name = Console.ReadLine(); // 에러! name 변수가 선언되지 않았어.

먼저 선언해야 해: string name = Console.ReadLine();

입력과 출력 순서를 헷갈렸을 때:

초보자들은 이런 실수를 자주 해. 근데 프로들도 해. 그냥 똑똑한 척하면서 :)

string name = Console.ReadLine();
Console.WriteLine("이름을 입력해: " + name); // 먼저 물어보고, 그 다음에 읽어야지!

올바른 순서:

Console.Write("이름을 입력해: ");
string name = Console.ReadLine();
Console.WriteLine("안녕, " + name);

꿀팁

질문 없이 Console.ReadLine()만 써도(예: 그냥 string x = Console.ReadLine();), 프로그램은 입력을 기다려. 근데 사용자는 뭘 입력해야 할지 몰라! 그래서 항상 Console.Write()Console.WriteLine()으로 명확하게 안내해주는 게 좋아.

1
설문조사/퀴즈
int랑 string 타입 소개, 레벨 2, 레슨 5
사용 불가능
int랑 string 타입 소개
int랑 string 타입 소개
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION