코린이 부트캠프 일상

코린이 7일차 / 조건문과 반복문 /

게발인개발자 2023. 11. 7. 17:23

1. 조건문

- if 문

조건식의 결과에 따라 실행 여부를 결정하는 조건문

# 실행할 코드가 여러줄인 경우
if (조건식)
{
    // 조건식이 참일 경우 실행할 코드
}

# 실행할 코드가 한줄인 경우
if (조건식)
    // 조건식이 참일 경우 실행할 코드

- else 문

if 문에서 조건식이 거짓일 경우 실행할 코드를 지정하는 조건문

if (조건식)
{
    // 조건식이 참일 경우 실행할 코드
}
else
{
    // 조건식이 거짓일 경우 실행할 코드
}

 

- else if 문

- if 문이 거짓일 때 새로운 조건을 제시하는 조건문

if (조건식1)
{
    // 조건식1이 참일 경우 실행할 코드
}
else if (조건식2)
{
    // 조건식2가 참일 경우 실행할 코드
}
else
{
    // 모든 조건식이 거짓일 경우 실행할 코드
}

-중첩 조건문

하나의 조건문 안에 또 다른 조건문이 포함된 형태의 조건문

int itemLevel = 3; // 아이템 레벨
string itemType = "Weapon"; // 아이템 종류

if (itemType == "Weapon")
{                       //if 문 안에 또 다른 if 문이 존재 조건식을 세분화 할 때 사용
    if (itemLevel == 1)
    {
        // 레벨 1 무기 효과
        Console.WriteLine("공격력이 10 증가했습니다.");
    }
    else if (itemLevel == 2)
    {
        // 레벨 2 무기 효과
        Console.WriteLine("공격력이 20 증가했습니다.");
    }
    else
    {
        // 그 외 무기 레벨
        Console.WriteLine("잘못된 아이템 레벨입니다.");
    }
}
else if (itemType == "Armor")
{
    if (itemLevel == 1)
    {
        // 레벨 1 방어구 효과
        Console.WriteLine("방어력이 10 증가했습니다.");
    }
    else if (itemLevel == 2)
    {
        // 레벨 2 방어구 효과
        Console.WriteLine("방어력이 20 증가했습니다.");
    }
    else
    {
        // 그 외 방어구 레벨
        Console.WriteLine("잘못된 아이템 레벨입니다.");
    }
}
else
{
    // 그 외 아이템 종류
    Console.WriteLine("잘못된 아이템 종류입니다.");
}

-swich 문

변수나 식의 결과에 따라 다른 코드 블록을 실행하는 제어문

case 문을 사용하여 변수나 식의 결과에 따라 실행할 코드를 지정

switch (변수나 식)
{
    case 값1:
        // 값1이 나온 경우 실행되는 코드
        break;                             //case 알맞은 식이 나오면 break 실행해서 switch문에서
    case 값2:                              // 밖으로 나간다.
        // 값2가 나온 경우 실행되는 코드
        break;
    // ...
    default:
        // 모든 case문에 해당하지 않는 경우 실행되는 코드
        break;
}
Console.WriteLine("게임을 시작합니다.");
Console.WriteLine("1: 전사 / 2: 마법사 / 3: 궁수");
Console.Write("직업을 선택하세요: ");
string job = Console.ReadLine();

switch (job)
{
    case "1":
        Console.WriteLine("전사를 선택하셨습니다.");
        break;
    case "2":
        Console.WriteLine("마법사를 선택하셨습니다.");
        break;
    case "3":
        Console.WriteLine("궁수를 선택하셨습니다.");
        break;
    default:
        Console.WriteLine("올바른 값을 입력해주세요.");
        break;
}

Console.WriteLine("게임을 종료합니다.");

-3항 연산자

if 문의 간단한 형태로, 조건식의 결과에 따라 두 값을 선택하는 연산자

(조건식) ? 참일 경우 값 : 거짓일 경우 값;


int currentExp = 1200;
int requiredExp = 2000;

# 삼항 연산자
string result = (currentExp >= requiredExp) ? "레벨업 가능" : "레벨업 불가능";
Console.WriteLine(result);


# if else 문
if (currentExp >= requiredExp)
{
    Console.WriteLine("레벨업 가능");
}
else
{
    Console.WriteLine("레벨업 불가능");
}

 

2. 반복문

- for 문

초기식, 조건식, 증감식을 사용하여 반복문을 작성

초기식은 반복문이 시작될 때 단 한 번 실행

조건식은 반복문이 실행될 때마다 평가되며, 참인 경우 반복문이 계속 실행됩니다.

증감식은 반복문이 실행될 때마다 실행되는 식입니다.

for (int i = 0; i < 10; i++) 
{
  Console.WriteLine(i);
}

- while 문

조건식이 참인 동안 코드 블록을 반복적으로 실행합니다.

int i = 0;
while (i < 10)
{
    Console.WriteLine(i);
    i++;
}

- for문 vs while문

int sum = 0;

for (int i = 1; i <= 5; i++)
{
    sum += i;
}

Console.WriteLine("1부터 5까지의 합은 " + sum + "입니다.");
==============================================================
int sum = 0;
int i = 1;

while (i <= 5)
{
    sum += i;
    i++;
}

// for 문 반복문이 몇번 시행되는 지 한 눈에 알수 있지다.
//반면 while 문은 반복 횟수를 유동적으로 변경 할  수 있다.
Console.WriteLine("1부터 5까지의 합은 " + sum + "입니다.");

for 문은 반복 횟수를 직관적으로 알 수 있고, 반복 조건을 한 번에 확인할 수 있어 가독성이 좋습니다.

while 문은 반복 조건에 따라 조건문의 실행횟수가 유동적이며, 이에 따라 코드가 더 간결합니다.

- do-while 문

while 문과 비슷하지만,. 조건식을 검사하기 전에 먼저 코드 블록을 한 번 실행하는 점이 다름

do
{
    // 조건식이 참인 경우 실행되는 코드
}
while (조건식);
========================================================
int sum = 0;
int num;

do
{
    Console.Write("숫자를 입력하세요 (0 입력 시 종료): ");
    num = int.Parse(Console.ReadLine());
    sum += num;
} while (num != 0);

Console.WriteLine("합계: " + sum);

- foreach 문

배열이나 컬렉션에 대한 반복문을 작성할 때 사용

foreach (자료형 변수 in 배열 또는 컬렉션)
{
    // 배열 또는 컬렉션의 모든 요소에 대해 반복적으로 실행되는 코드
}

======================================================================
string[] inventory = { "검", "방패", "활", "화살", "물약" };

foreach (string item in inventory)
{
    Console.WriteLine(item);
}

- 중첩 반복문

쉽게 for 문 안에 for문이 있다고 생각

for (int i = 2; i <= 9; i++)
{
    for (int j = 1; j <= 9; j++)
    {
        Console.WriteLine(i + " x " + j + " = " + (i * j));
    }
}

//중첩 반복문을 사용한 구구단

 

- Break & Continue

int sum = 0;

while (true)
{
    Console.Write("숫자를 입력하세요: ");
    int input = int.Parse(Console.ReadLine());

    if (input == 0)
    {
        Console.WriteLine("프로그램을 종료합니다."); // 0을 입력하면 지금까지 나온 숫자 합 출력
        break;
    }

    if (input < 0)
    {
        Console.WriteLine("음수는 무시합니다."); //음수를 입력하면 무시하고 진행
        continue;
    }

    sum += input;
    Console.WriteLine("현재까지의 합: " + sum);
}

Console.WriteLine("합계: " + sum);