C# 난수(Random)를 이용한 숫자 맞추기 Chapter 02
이번 글에서도 이어서 숫자 맞추기 프로그램을 만들어 보겠습니다. 오늘 살펴볼 코드들은 while, if else 입니다.
코드 살펴보기 |
저번 글에서 변수타입과 Random클래스중 Next() 함수에 대해서 알아봤습니다. 오늘은 코딩의 꽃이라고 부를 수있는 if, for, while문 중 while문을 알아보겠습니다.
while(int.Parse(Console.ReadLine()) != RanNum) { ~~~~ } ~~~~ |
01. Console.ReadLine() & Console.WriteLine()
현재 코드를 보면 while 옆에 괄호가 있고 괄호안에 복잡하게 보이는 코드가 있습니다. 우리는 초보자이기 때문에 복잡한 설명보다 직관적인 설명을 하겠습니다. 먼저 이 코드는 사용자의 입력을 받을 수 있는 함수 입니다. 'Console.'은 저번에 배운 'Random.'클래스와 비슷해 보입니다. 그렇게 생각하셨다면 이미 반은 아신거와 다름없습니다. Random클래스와 마찬가지로 Console클래스에서 ReadLine()함수(메서드)를 불러 오는것 입니다. ReadLine()는 입력을 받을 수 있는 함수라고 설명 했습니다. 그렇다면 출력하는 함수도 있을까요? 당연히 있습니다. 바로 Console.WriteLine()함수 입니다. 마찬가지로 Console클래스에서 WriteLine()이라는 함수를 가져온겁니다. Console이라는 클래스는 많은 함수를 가지고 있습니다.
클래스 | 함수 |
Console. | Write() |
WrtieLine() | |
Read | |
ReadLine() |
이렇게 Console.클래스에서 자주 쓰이는 함수들을 알아봤습니다. 자주 쓰이는 코드들이니 꼭 기억해주세요.
02. 문자열을 정수(int)로 변환
옆에보면 'int.Parse()'라고 코딩되어 있습니다. 이에 대한 설명이 이해되려면 문자열과 정수의 타입에대한 특징을 알아야합니다.
특징 | |
string | 1. 문자열 2. 숫자를 쓸 수 없다. |
int | 1. 정수(음수 양수) 2. 문자나 문자열을 쓸 수 없다. |
이제부터 string과 int의 차이점을 쉽게 알려드리겠습니다. 사용자가 실제로 숫자 1부터 10까지 중 숫자 3을 입력했다고 가정합시다. 분명 저희는 정수 3이라는 것을 알 수있지만 컴퓨터는 이게 숫자 3이라고 인식하지 못합니다. 단지 0과 1로 된 문자3이라고 데이터를 인식하고 저장할 수 있습니다. 컴퓨터는 정수와 문자를 다르게 구분 합니다. 그래서 저희는 컴퓨터에게 문자열을 정수타입으로 변환시켜라고 말해줘야합니다. 그래서 int.Parse라고 써주는 겁니다. 이것 외에도 다양한 방법이 있으니 참고 하시길 바랍니다
문자열를 담는 방식 : 하나의 공간에 하나씩 문자를 담습니다.
뭉 | 그 | 래 | 머 | 입 | 니 | 다 | . |
문자열을 int타입으로 변환
int.Parse | 사용자가 유효하지 않은 입력을 입력 할 때 상황을보다 세밀하게 제어 할 수 있으므로 일반적으로사용 합니다. |
int32.Parse | 사용자가 유효하지 않은 입력을 입력 할 때 상황을보다 세밀하게 제어 할 수 있으므로 일반적으로 사용 합니다. |
convert.Toint32() | 인수로 객체를 취합니다. |
02. while
while문은 반복문이라고 합니다. while의 단어만 보면 '~하는 동안'이라는 뜻을 가지고 있습니다. 코딩에서도 마찬가지로 '~하는동안'이라는 뜻을 가지고 있습니다. 하지만 코딩에서 while문은 정확하게 표현하면 "~하는동안 ~을 반복해라"라는 표현이 더 정확합니다. 이것은 for문과 비슷하면서도 비슷하지 않습니다. for문에 대한 설명은 또 다른 프로그램을 만들어볼때 설명하겠습니다. 그러므로 현재 코딩되어 있는 while문은 '입력한 숫자가 RanNum와 맞지않는 동안 계속해서 while문 안에있는 코드를 실행해라'의 의미입니다. RanNum안에서는 1부터 10까지 무작위 숫자가 지정되어 있을겁니다. 그래서 이 무작위 숫자를 사용자가 맞추지 못하는동안 프로그램은 계속해서 "오답 입니다"라고 출력 할것 입니다. 하지만 숫자를 맞춘다면 무작위 숫자를 맞췄기때문에 while문에서 벗어나 "정답 입니다"를 출력하게 됩니다.
지금까지 배운 코드 정리