질의 응답 및 C# 문법 종합반 2일차
Q. Console.ReadLine();
을 사용할 때 문자열이 아닌 숫자를 입력하게 되는 경우 어떤 식으로 접근을 해야할까요?
A. x = int.Parse(Console.ReadLine());
처럼 문자열(string)이 아닌 정수(int)로 변환하기 위한 코드를 추가적으로 입력해주면 됩니다.
1. (console.ReadLine()) = 입력값을
2. int.Parse = 정수로 변환해줘
문제 : 여기에 코드를 입력해주세요 :)
제출 답안
int target = new Random().Next(1, 101);
int guess = 0;
int count = 0;
Console.WriteLine("1~100 사이의 숫자를 맞춰보세요.");
while (guess != target)
{
Console.Write("정답을 입력해주세요 : ");
guess = int.Parse(Console.ReadLine());
count++;
if (guess < target)
{
Console.WriteLine("정답은 더 높은 숫자입니다.");
}
else if (guess > target)
{
Console.WriteLine("정답은 더 낮은 숫자입니다.");
}
else
{
Console.WriteLine("축하합니다. 정답입니다!");
Console.WriteLine("시도한 횟수 : " + count);
}
}
출력 결과물
Q. 아래 코드에서 return sum을 사용하는 이유와 sum을 그대로 Console 하지 않고 result 값을 새로이 만들어서 쓰는 이유가 궁금합니다.
int AddNumbers(int a, int b) { int sum = a + b; return sum; } // 메서드 호출 및 반환값 사용 int result = AddNumbers(10, 20); Console.WriteLine("Sum: " + result);A-1. Return sum을 사용하는 이유
int AddNumbers 라는 데이터에 int sum = a + b 라는 값을 넣어주기 위해 return을 사용하게 됩니다.
A-2. sum을 Console 하지 않고 result를 새로 만든 이유
int AddNumbers는 별도의 접근제한자를 설정하지 않았기 때문에 기본적으로 Private가 적용된 것으로 인식됩니다.
그래서 sum은 Main Class에서는 확인이 불가능한 변수이므로 이 변수를 이용하기 위한 result를 새로 만들어서 활용하게 됩니다.
문제 : 여기에 코드를 입력해주세요 :)
제출 답안
internal class Program
{
static char[] arr = {'1', '2', '3', '4', '5', '6', '7', '8', '9'};
static int player = 1;
static int choice;
static int flag = 0;
static void Main(string[] args)
{
do
{
Console.Clear();
Console.WriteLine("1번 플레이어돌 : X / 2번 플레이어돌 : O");
Console.WriteLine("\n");
if (player % 2 == 1)
{
Console.WriteLine("1번 플레이어돌 놓을 차례");
}
else
{
Console.WriteLine("2번 플레이어돌 놓을 차례");
}
Console.WriteLine("\n");
Board();
string line = Console.ReadLine();
bool res = int.TryParse(line, out choice);
if (res == true)
{
if (arr[choice-1] != 'X' && arr[choice-1] != 'O')
{
if (player % 2 == 1)
{
arr[choice-1] = 'X';
}
else
{
arr[choice-1] = 'O';
}
player++;
}
else
{
Console.WriteLine("이미 {0} 행은 {1} 돌이 놓아져 있습니다. 다른 곳을 선택해주세요.", choice, arr[choice-1]);
Console.ReadLine();
}
}
else
{
Console.WriteLine("1~9 사이의 숫자를 입려해주세요.");
}
flag = CheckWin();
}
while (flag != -1 && flag != 1);
if (flag == 1)
{
Console.WriteLine("플레이어 {0}이(가) 이겼습니다.", (player % 2) + 1);
}
else
{
Console.WriteLine("무승부");
}
Console.ReadLine();
}
static void Board()
{
Console.WriteLine("_________________");
Console.WriteLine(" | | ");
Console.WriteLine(" {0} | {1} | {2} ", arr[0], arr[1], arr[2]);
Console.WriteLine("_____|_____|_____");
Console.WriteLine(" | | ");
Console.WriteLine(" {0} | {1} | {2} ", arr[3], arr[4], arr[5]);
Console.WriteLine("_____|_____|_____");
Console.WriteLine(" | | ");
Console.WriteLine(" {0} | {1} | {2} ", arr[6], arr[7], arr[8]);
Console.WriteLine(" | | ");
Console.WriteLine(" ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄");
}
static int CheckWin()
{
if (arr[0] == arr[1] && arr[1] == arr[2])
{
return 1;
}
else if (arr[3] == arr[4] && arr[4] == arr[5])
{
return 1;
}
else if (arr[6] == arr[7] && arr[7] == arr[8])
{
return 1;
}
else if (arr[0] == arr[3] && arr[3] == arr[6])
{
return 1;
}
else if (arr[1] == arr[4] && arr[4] == arr[7])
{
return 1;
}
else if (arr[2] == arr[5] && arr[5] == arr[8])
{
return 1;
}
else if (arr[0] == arr[4] && arr[4] == arr[8])
{
return 1;
}
else if (arr[2] == arr[4] && arr[4] == arr[6])
{
return 1;
}
else if (arr[0] != '1' && arr[1] != '2' && arr[2] != '3' && arr[3] != '4' && arr[4] != '5' && arr[5] != '6' &&
arr[6] != '7' && arr[7] != '8' && arr[8] != '9')
{
return -1;
}
else { return 0; }
}
}
결과 출력물
