계산기 프로그램
do
{
    double num1 = 0;
    double num2 = 0;
    double result = 0;

    Console.WriteLine("--------------------");
    Console.WriteLine(" Calculator Program ");
    Console.WriteLine("--------------------");

    Console.Write("첫 번째 숫자를 입력하세요: ");
    num1 = Convert.ToDouble(Console.ReadLine());

    Console.Write("두 번째 숫자를 입력하세요: ");
    num2 = Convert.ToDouble(Console.ReadLine());

    Console.WriteLine("연산기호: ");
    Console.WriteLine("\t+: 더하기");
    Console.WriteLine("\t-: 빼기");
    Console.WriteLine("\t*: 곱하기");
    Console.WriteLine("\t/: 나누기");
    Console.Write("연산기호를 입력하세요: ");

    switch (Console.ReadLine())
    {
        case "+":
            result = num1 + num2;
            Console.WriteLine($"결과: {num1} + {num2} = " + result);
            break;
        case "-":
            result = num1 - num2;
            Console.WriteLine($"결과: {num1} - {num2} = " + result);
            break;
        case "*":
            result = num1 * num2;
            Console.WriteLine($"결과: {num1} * {num2} = " + result);
            break;
        case "/":
            result = num1 / num2;
            Console.WriteLine($"결과: {num1} / {num2} = " + result);
            break;
        default:
            Console.WriteLine("해당되는 연산기호가 아닙니다.");
            break;
    }
    Console.WriteLine("계속하시겠습니까? (Y = 예, N = 아니오): ");
} while (Console.ReadLine().ToUpper() == "Y");

switch문을 통해 연산기호를 골랐을 때의 경우들을 처리하고 do while문을 통해 계속할 것인지 그만둘 것인지 처리한다.

do while문은 먼저 한 번 실행한 후, while문이 등장한다.

 

 

'C# > C#' 카테고리의 다른 글

21. ForEach문(Foreach Loop)  (0) 2023.09.18
20. 배열(Arrays)  (0) 2023.09.14
18. 가위바위보 게임(Rock-Paper-Scissors Game)  (0) 2023.09.07
17. 숫자 맞추기 게임(Number Guessing Game)  (0) 2023.09.05
16. 중첩 반복문(Nested Loops)  (0) 2023.09.04
가위바위보 게임

지금까지 공부한 것을 응용하여 가위바위보 게임 프로그램을 만들어보자.

    Random random = new Random();
    bool playAgain = true;
    String player;
    String computer;
    String answer;

    while (playAgain)
    {
        player = "";
        computer = "";
        answer = "";

        while (player != "ROCK" && player != "PAPER" && player != "SCISSORS" && player != "주먹" && player != "보" && player != "바위")
        {
            Console.Write("ROCK(바위), PAPER(보), SCISSORS(가위) 중 하나를 입력하세요.: ");
            player = Console.ReadLine();
            player = player.ToUpper();
        }

        switch (random.Next(1, 4))
        {
            case 1:
                computer = "ROCK(바위)";
                break;
            case 2:
                computer = "PAPER(보)";
                break;
            case 3:
                computer = "SCISSORS(가위)";
                break;
        }

        Console.WriteLine("당신: " + player);
        Console.WriteLine("컴퓨터: " + computer);

        switch (player)
        {
            case "ROCK":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else
                {
                    Console.WriteLine("- 승리 -");
                }
                break;
            case "주먹":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else
                {
                    Console.WriteLine("- 승리 -");
                }
                break;
            case "PAPER":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else
                {
                    Console.WriteLine("- 패배 -");
                }
                break;
            case "보":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 무승부 -");
                }
                else
                {
                    Console.WriteLine("- 패배 -");
                }
                break;
            case "SCISSORS":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else
                {
                    Console.WriteLine("- 무승부 -");
                }
                break;
            case "가위":
                if (computer == "ROCK(바위)")
                {
                    Console.WriteLine("- 패배 -");
                }
                else if (computer == "PAPER(보)")
                {
                    Console.WriteLine("- 승리 -");
                }
                else
                {
                    Console.WriteLine("- 무승부 -");
                }
                break;
        }

        Console.WriteLine("다시하기 (Y/N)");
        answer = Console.ReadLine();
        answer = answer.ToUpper();

        if (answer == "Y")
        {
            playAgain = true;
        }
        else
        {
            playAgain = false;
        }
    }

    Console.WriteLine("플레이 해주셔서 감사합니다.");

    Console.ReadKey();
}

while문을 중첩하여 다시하기를 선택했을 때와 가위(SCISSORS), 바위(ROCK), 보(PAPER) 외의 것을 입력했을 경우를 처리한다. switch문으로 컴퓨터가 랜덤으로 가위바위보 중 하나를 내보내도록 하고, if문을 통해 승패를 가른다.

 

 

'C# > C#' 카테고리의 다른 글

20. 배열(Arrays)  (0) 2023.09.14
19. 계산기 프로그램(Calculator Program)  (0) 2023.09.13
17. 숫자 맞추기 게임(Number Guessing Game)  (0) 2023.09.05
16. 중첩 반복문(Nested Loops)  (0) 2023.09.04
15. For문(For Loops)  (0) 2023.08.31
숫자 찾기 게임

지금까지 공부한 것을 응용하여 숫자 맞추기 게임 프로그램을 만들어보자.

프로그램이 최소값과 최대값 사이의 숫자를 랜덤으로 설정하면 사용자가 숫자를 추측하는 게임이다.

    Random random = new Random();
    bool playAgain = true;
    int min = 1;
    int max = 100;
    int guess;
    int number;
    int guesses;
    String response;

    while (playAgain)
    {
        guess = 0;
        guesses = 0;
        response = "";
        number = random.Next(min, max + 1);

        while (guess != number)
        {
            Console.WriteLine(min + " - " + max + "사이의 숫자를 입력하세요.");
            guess = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("정답: " + guess);

            if (guess > number)
            {
                Console.WriteLine(guess + "보다 작습니다.");
            }
            else if (guess < number)
            {
                Console.WriteLine(guess + "보다 큽니다.");
            }
            guesses++;
        }
        Console.WriteLine("숫자: " + number);
        Console.WriteLine("정답입니다!");
        Console.WriteLine("시도 횟수: " + guesses);

        Console.WriteLine("다시하기 (Y/N): ");
        response = Console.ReadLine();
        response = response.ToUpper();

        if (response == "Y")
        {
            playAgain = true;
        }
        else
        {
            playAgain = false;
        }
    }
    Console.WriteLine("플레이 해주셔서 감사합니다.");
}

playAgain에 true를 할당하여  다시 시작했을 때 초기값을 설정해준다. 사용자가 숫자를 입력 했을 때 숫자가 너무 높거나 낮으면 while문을 통해 힌트를 준다. 정답을 맞추면 시도 횟수와 함께 다시 할 것인지 묻는다. if문을 통해 사용자의 대답을 처리한다.

 

 

'C# > C#' 카테고리의 다른 글

19. 계산기 프로그램(Calculator Program)  (0) 2023.09.13
18. 가위바위보 게임(Rock-Paper-Scissors Game)  (0) 2023.09.07
16. 중첩 반복문(Nested Loops)  (0) 2023.09.04
15. For문(For Loops)  (0) 2023.08.31
14. While문(While Loops)  (0) 2023.08.31
중첩 반복문

반복문 안의 반복문으로 정렬 알고리즘에 많이 사용된다.

 

중첩 반복문을 이용하여 원하는 기호로 직사각형을 만드는 프로그램을 만들어보자.

Console.Write("행의 갯수를 입력하세요. : ");
int rows = Convert.ToInt32(Console.ReadLine());

Console.Write("열의 갯수를 입력하세요. : ");
int columns = Convert.ToInt32(Console.ReadLine());

Console.Write("기호를 입력하세요. : ");
String symbol = Console.ReadLine();

for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        Console.Write(symbol);
    }
    Console.WriteLine();
}

외부 반복문이 실행되면 즉시 내부 반복문이 실행된다. 내부 반복문이 모두 끝나야 외부 반복문 한 번이 반복된 것이다. 내부 반복문이 끝날 때마다 한 줄씩 넘어가기 위해 Console.WriteLine();을 넣는다. 이것이 반복되면 우리가 설정한 기호의 직사각형이 완성된다.

 

 

'C# > C#' 카테고리의 다른 글

18. 가위바위보 게임(Rock-Paper-Scissors Game)  (0) 2023.09.07
17. 숫자 맞추기 게임(Number Guessing Game)  (0) 2023.09.05
15. For문(For Loops)  (0) 2023.08.31
14. While문(While Loops)  (0) 2023.08.31
13. 논리 연산자(Logical Operators)  (0) 2023.08.31

+ Recent posts