C#

C# 조건문과 반복문

anvil925 2025. 2. 10. 05:31
728x90
반응형

// C# 조건문과 반복문

// 조건문 (Conditional Statements) 이란 ?

// 조건문은 특정 조건을 만족할 때 코드를 실행하는 제어문입니다.
// 조건문은 if, switch, 3항 연산자를 사용하여 조건을 표현합니다
// if 문은 조건식의 결과에따라 실행 여부를 결정하는 조건문입니다.
// 조건식이 참이면 if문의 블록이 실행되고, 거짓이면 실행되지 않습니다.
// if문은 if, else if, else 키워드를 사용하여 조건식을 표현합니다.
// else if문은 if문이 거짓일 때 다른 조건을 검사하는데 사용됩니다.
// else문은 if문과 else if문이 모두 거짓일 때 실행되는 블록입니다.
// if문은 중첩하여 사용할 수 있습니다.
// 중첩된 if문은 if문의 블록 내에 다른 if문을 사용하는 것을 의미합니다.
// 중첩된 if문은 if문의 블록 내에 다른 if문을 사용하여 복잡한 조건을 표현할 때 사용합니다.
// if문은 특정 조건을 만족할 때 코드를 실행할 때 사용합니다.
// if문은 특정 조건을 만족하지 않을 때 코드를 실행할 때 사용합니다.

using System;

class ConditionalStatementsAndLoops
{   
    public static void WhatIsIf()
    {
        int playerScore = 100; // 플레이어의 점수
        if (playerScore > 100) // 플레이어의 점수가 100보다 큰지 검사
        {
            Console.WriteLine("플레이어의 점수가 100보다 큽니다."); // 플레이어의 점수가 100보다 크면 출력
        }
        else if (playerScore == 100) // 플레이어의 점수가 100인지 검사
        {
            Console.WriteLine("플레이어의 점수가 100입니다."); // 플레이어의 점수가 100이면 출력
        }
        else
        {
            Console.WriteLine("플레이어의 점수가 100보다 작습니다."); // 플레이어의 점수가 100보다 작으면 출력
        }
        int itemCount = 0; // 아이템의 개수
        string itemName = "물약"; // 아이템의 이름
        if (itemName == "물약") // 아이템의 이름이 물약인지 검사
        {
            if (itemCount > 0) // 아이템의 개수가 0보다 큰지 검사
            {
                Console.WriteLine("물약을 사용합니다."); // 아이템의 개수가 0보다 크면 출력
            }
            else
            {
                Console.WriteLine("물약이 부족합니다."); // 아이템의 개수가 0이면 출력
            }
        }  
    }

    // switch문은 특정 변수의 값을 기준으로 분기하는 조건문입니다.
    // switch문은 switch, case, default 키워드를 사용하여 변수의 값을 비교합니다.
    // switch문은 변수의 값이 case문의 값과 일치하면 해당 case문의 블록을 실행합니다.
    // default문은 case문의 값과 일치하는 값이 없을 때 실행되는 블록입니다.
    // switch문은 break 키워드를 사용하여 switch문을 종료합니다.
    // switch문은 if문의 다중 조건식을 간단하게 표현할 때 사용합니다.
    
    public static void WhatIsSwitch()
    {
        int playerScore = 100; // 플레이어의 점수
        switch (playerScore) // 플레이어의 점수에 따라 분기
        {
            case 100: // 플레이어의 점수가 100일 때
                Console.WriteLine("플레이어의 점수가 100입니다."); // 출력
                break; // switch문을 종료
            case 200: // 플레이어의 점수가 200일 때
                Console.WriteLine("플레이어의 점수가 200입니다."); // 출력
                break; // switch문을 종료
            default: // 플레이어의 점수가 100, 200이 아닐 때
                Console.WriteLine("플레이어의 점수가 100, 200이 아닙니다."); // 출력
                break; // switch문을 종료
        }
    }

    // 3항 연산자 (Ternary Operator) 란 ?

    // 3항 연상자는 if문을 간단하게 표현하는 연산자입니다.
    // 3항 연산자는 조건식 ? 참일 때 값 : 거짓일 때 값 형태로 사용합니다.
    // 3항 연산자는 if문과 else문을 한 줄로 표현할 때 사용합니다.
    // 3항 연산자는 중첩하여 사용할 수 있습니다.
    // 3항 연산자는 중첩된 if문을 간단하게 표현할 때 사용합니다.
    // 3항 연산자는 특정 조건을 만족할 때 코드를 실행할 때 사용합니다.

    public static void WhatIsTernaryOperator()
    {
        int playerScore = 100; // 플레이어의 점수
        string result = playerScore > 100 ? "플레이어의 점수가 100보다 큽니다." : "플레이어의 점수가 100보다 작거나 같습니다.";
        Console.WriteLine(result); // 플레이어의 점수에 따라 결과 출력
    }

    // 반복문 (Loops) 이란 ?

    // 반복문은 특정 조건을 만족할 때까지 코드를 반복 실행하는 제어문입니다.
    // 반복문은 for, while, do-while 키워드를 사용하여 반복 실행합니다.
    // for문은 초기식, 조건식, 증감식을 사용하여 반복 실행합니다.
    // while문은 조건식이 참일 때 반복 실행합니다.
    // do-while문은 먼저 코드를 실행한 후 조건식을 검사하여 반복 실행합니다.
    // break문은 반복문을 종료하고, continue문은 반복문의 처음으로 돌아가는 제어문입니다.
    // foreach문은 배열이나 컬렉션의 요소를 반복 실행하는 제어문입니다.

    public static void WhatIsLoop()
    {
        for (int i = 0; i < 5; i++) // 0부터 4까지 5번 반복
        {
            Console.WriteLine(i); // i 출력
        }
        int j = 0; // j 초기화
        while (j < 5) // j가 5보다 작을 때 반복
        {
            Console.WriteLine(j); // j 출력
            j++; // j 증가
        }
        int k = 0; // k 초기화
        do // 먼저 실행한 후 조건 검사
        {
            Console.WriteLine(k); // k 출력
            k++; // k 증가
        } while (k < 5); // k가 5보다 작을 때 반복
        foreach (int number in new int[] { 1, 2, 3, 4, 5 }) // 배열의 요소를 반복
        {
            Console.WriteLine(number); // number 출력
        }
        for (int i = 0; i < 5; i++) // 0부터 4까지 5번 반복
        {
            if (i == 3) // i가 3일 때
            {
                break; // 반복문 종료
            }
            Console.WriteLine(i); // i 출력
        }
        int sum = 0; // 합계 초기화
        for (int i = 0; i < 5; i++) // 0부터 4까지 5번 반복
        {
            if (i == 3) // i가 3일 때
            {
                continue; // 반복문 처음으로
            }
            sum += i; // 합계 계산
        }
    }
    public static void RocksScissorsPaper() // 가위바위보 게임
    {
       // 가위바위보
       string[] choices = { "가위", "바위", "보" }; // 가위, 바위, 보 배열
       string playerChoice = ""; // 플레이어의 선택
       string computerChoice = choices[new Random().Next(0,3)]; // 컴퓨터의 선택

       while(playerChoice != computerChoice)
       {
              Console.Write("가위, 바위, 보 중 하나를 선택하세요: ");
              playerChoice = Console.ReadLine(); // 플레이어의 선택

              if (playerChoice == computerChoice) // 플레이어와 컴퓨터의 선택이 같을 때
              {
                  Console.WriteLine("비겼습니다."); // 비겼다고 출력
              }
              else if (playerChoice == "가위" && computerChoice == "바위" || 
                       playerChoice == "바위" && computerChoice == "보" ||
                       playerChoice == "보" && computerChoice == "가위") // 플레이어가 질 때
              {
                  Console.WriteLine("컴퓨터가 이겼습니다."); // 컴퓨터가 이겼다고 출력
              }
              else
              {
                  Console.WriteLine("플레이어가 이겼습니다."); // 플레이어가 이겼다고 출력
              }
       }
    }

    public static void UpAndDown() // Up & Down 게임
    {
        int targetNumber = new Random().Next(1, 101); // 1부터 100까지의 숫자 중 랜덤으로 선택
        int guessNumber = 0; // 플레이어의 추측 숫자
        int tryCount = 0; // 시도 횟수
        Console.WriteLine("1부터 100까지의 숫자 중 하나를 맞춰보세요.");

        while(guessNumber != targetNumber) // 플레이어의 추측 숫자와 정답 숫자가 같지 않을 때
        {
            Console.Write("숫자를 입력하세요: ");
            guessNumber = int.Parse(Console.ReadLine()); // 플레이어의 추측 숫자
            tryCount++; // 시도 횟수 증가

            if (guessNumber > targetNumber) // 플레이어 추측 숫자가 정답 숫자보다 클 때
            {
                Console.WriteLine("Down!"); 
            }
            else if (guessNumber < targetNumber) // 플레이어 추측 숫자가 정답 숫자보다 작을 때
            {
                Console.WriteLine("Up!");
            }
            else
            {
                Console.WriteLine("정답입니다.");
                Console.WriteLine($"시도 횟수: {tryCount}");
            }
        }
    }
}
728x90
반응형

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

C# 메서드(Method)와 구조체(Structures)  (0) 2025.02.11
C# 배열과 컬렉션  (1) 2025.02.10
C# 문자열 처리  (0) 2025.02.10
C# 연산자는 무엇인가?  (0) 2025.02.09
C# 조건문과 반복문  (0) 2025.01.31