TIL

2024 09 20 TIL (조건문과 반복문)

noc777 2024. 9. 20. 12:55

조건문 

 

조건에 따라 코드의 실행 여부를 결정할 수 있습니다..

실행할 코드가 여러줄인 경우엔 중괄호를 써주어 중괄호 안에 코드를 써줍니다.


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

실행할 코드가 한줄인 경우엔 중괄호 작성없이 사용하여도 됩니다.


if (조건식)
    // 조건식이 참일 경우 실행할 코드

 

 

else문

 

else는 if문의 조건에 부합하지 않을 때 실행할 코드를 작성하는 조건문입니다. else문은 생략이 가능합니다.

 

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

}

 

else if 문

 

else if 문은 if문의 조건에 부합하지 않을 때 새로운 조건으로 코드 실행여부를 판별하고 싶을 때 사용합니다.

else 는 else if 를 다 사용하고 나서 마지막에 사용합니다.

 

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

 

중첩 조건문

 

중첩 조건문은 하나의 조건문 안에 또 다른 조건문이 포함된 형태의 조건문입니다. 

코드를 실행하는 기준을 여러개로 두고 싶을 때 사용합니다.

 

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

if (itemType == "Weapon")
{
    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("잘못된 아이템 종류입니다.");
}

 

위의 코드는 먼저 아이템 타입으로 분류를 1차적으로 하고 2차적으로 아이템 레벨로 분류를 한 후

알맞은 코드를 실행합니다. 

 

Switch 문

 

switch case 문은 실행하였을 때 사용자가 입력된 값에 따라 다른 결과를 출력하게 하는 조건문입니다.

switch문에 입력받은 변수를 넣고 그 값에 해당하는 case의 코드를 실행시킵니다. 위에서 아래로 내려가면서 조건에 부합하는 코드들을 전부 실행시키기 때문에 break; 를 써주어 식을 빠져나가게 해줍니다.

 

switch (변수나 식)
{
    case 값1:
        // 값1이 나온 경우 실행되는 코드
        break;
    case 값2:
        // 값2가 나온 경우 실행되는 코드
        break;
    // ...
    default:
        // 모든 case문에 해당하지 않는 경우 실행되는 코드
        break;
}

 

삼항 연산자

 

코드를 간략하게 쓰고 싶을 경우 사용합니다. 조건식 뒤에 ?를 써주고 왼쪽엔 참일 때의 값 오른쪽엔 거짓일 때의 값을 

입력시킵니다.

 

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

 

 

 

string result = (currentExp >= requiredExp) ? "레벨업 가능" : "레벨업 불가능";
Console.WriteLine(result);


반복문

 

일련의 명령문을 반복하여 실행하는 제어문

 

for문

 

for문은 초기식,조건식,증감식을 사용하여 반복문을 작성합니다.

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

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

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

 

for (초기식; 조건식; 증감식)
{
    // 조건식이 참인 경우 실행되는 코드
}

 

일반적으로 증감연산자를 사용하여 1씩 증가시키지만

 

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

 

이런식으로  2씩 증가시키는 등의 방법도 있습니다.

 

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

 

또한 초기식을 밖에 써주어 for문이 끝나고 나서도 변수로서 사용될 수 있게 할수도 있습니다.


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

 

 

while 문

 

while 문은 for문과 비슷하게 조건이 참인 동안 반복적으로 코드를 실행하게 합니다.

 

while (조건식)
{
    // 조건식이 참인 경우 실행되는 코드
}

 

 

 

 

for문과 while문을 비교하면

while문은 for문의 초기식 조건식 증감식이 각각 따로 떨어져있는 느낌입니다. 

 

for (int i = 0; i < 10; i++) <-- 초기식 조건식 증감식
{
  Console.WriteLine(i);
}

 

int i = 0;   <--초기식
while (i < 10)   <--조건식
{
    Console.WriteLine(i);
    i++;   <--증감식
}

 

for문은 반복횟수가 직관적으로 보이고 반복조건을 한눈에 확인할 수 있어 가독성이 좋고

while문은 반복조건에 따라 조건문의 실행 횟수가 유동적이고 코드가 더 간결할 수 있다는

특징이 존재하여 상황에 맞게 사용하면 될것 같습니다.

 

do while 문

 

 

do while 문은 while 문과 비슷하지만 조건식을 검사하기 전에 먼저 한번은 무조건 실행하는 특징이 있습니다.

 

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

 

한번은 꼭 실행하게 한 후 그 후엔 조건에 맞게 실행하고 싶을 때 do while 문을 쓰면 되겠습니다.

 

 

foreach문

 

foreach 문은 배열이나 컬렉션에 대한 반복문을 작성할 때 사용합니다.

 

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

 

 

foreach 를 사용할 때 배열이 먼저 준비되어있고 

 

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

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

 

inventory의 항목들이 item 으로 들어가 후에 item이 출력될 때 항목들도 출력이 되는 것을 볼 수 있습니다.

 

foreach는 파이썬의 for in 배열  의 구조와 비슷한 느낌입니다. 배열을 활용하고 그 배열의 항목들을 다른 실행을 위해 옮기고 싶을 때 사용하면 좋을 듯 합니다.

 

 

중첩반복문

 

중첩반복문은 이름에서 유추가능하듯 여러개의 반복문을 사용하는 것을 의미합니다.

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 3; j++)
    {
        Console.WriteLine("i: {0}, j: {1}", i, j);
    }
}

 

코드는 위에서 아래로 내려가기에  i 반복문이 한번 실행되면 j반복문이 3번 돌고나서야 다시

i반복문으로 돌아와 다시 반복하는 형태입니다.

 

for(int i =1 i<=9; i++)

{

    for (int j =2 ; j <=9; j++)

    {

      Console.WriteLine(j+"x"+i+"="+(j*i)+ "\t");

    }

   Console.WriteLine();

}

 

처럼 이 특성을 활용하여 구구단 같은 코드도 작성이 가능합니다.

 

break 와 continue

 

break는 반복을 중지시키고  continue는 현재 반복을 중지한 후 다음 반복을 진행하는 역할을 합니다.

 

for (int i = 1; i <= 10; i++)
{
    if (i % 3 == 0)
    {
        continue; // 3의 배수인 경우 다음 숫자로 넘어감
    }

    Console.WriteLine(i);
    if (i == 7)
    {
        break; // 7이 출력된 이후에는 반복문을 빠져나감
    }
}

 

 

'TIL' 카테고리의 다른 글

2024 09 24 TIL  (0) 2024.09.24
2024 09 23 TIL (메서드)  (0) 2024.09.23
2024 09 19 TIL (C# 기초)  (0) 2024.09.20
2024 09 13 TIL (PlayerPrefs)  (0) 2024.09.13
2024 09 12 TIL (코루틴)  (0) 2024.09.12