[Unity C#] 반복문

YongSeok·2022년 7월 7일
0

📌 반복문 개요

  • 반복문은 설정한 조건이 거짓이 될 때까지 코드 블록 내부를 반복해서 실행한다
  • 반복문에는 for, while, do-while 이 있다

✏️ for

  • for괄호 내부에 초기화, 조건, 증감 연산자와 같이 3개의 연산자를 작성하며, 초기화한 변수가 반복문 내부를 1회 실행할 때마다 증감 연산자에 의해 값이 바뀌며, 이 값이 조건을 만족하지 않을 때까지 반복해서 실행한다

👇코드예제

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            Debug.Log(i);
        }
    }
}
// i는 0으로 값이 초기화되며, i < 10 조건을 검사한다.
// 조건이 참이기 때문에 Debug.Log(i);를 실행해 0을 출력한다
// i++로 index는 1이 되고, index < 10 조건을 검사한다.
// 반복문 내부로 가서 Debug.Log(i); 를 실행해 1을 출력한다.
// ...
// 9를 출력하고 i가 10이 되어 index < 10을 만족하지 않게 되면 반복문을 종료한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    void Start()
    {
        for (int x = 1; x < 10; x ++)
        {
            for ( int y = 1; y < 10; y ++)
            {
                Debug.Log($"{x} x {y} = {x * y}");
            }
        }
    }
}
// 바깥쪽 for 문이 x = 1부터 x = 9까지 9번이고,
// 안쪽 for 문이 y = 1부터 y = 9까지 9번이기 때문에
// 안쪽 for문 내부에 있는 23번째 줄은 89번(9*9) 실행된다.
// 즉, 구구단이 출력된 모습을 볼 수 있다.

✏️ while

  • for와 다르게 괄호 내부에 조건만 들어간다
  • 조건을 만족하지 않을 때까지 반복 실행하는 것은 동일하다
  • 조건에 사용되는 변수의 초기화와 증감 연산은 알아서 작성해야 한다
    • 보통 초기화는 while() 문 위에 작성하며, 증감 연산은 while() 문 내부의 가장 아래에 작성
    • 실행 구조는 for문과 유사하다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    int i = 0;

    void Start()
    {
        while ( i < 10 )
        {
            Debug.Log(i);
            i++;
        }
    }
}

☝ 그림과 같이 for문과 while 문의 차이점은 변수선언 및 초기화와 증감연산자의 위치가 다르다


✏️ do - while

  • for, while 문은 조건을 먼저 검사하기 때문에 조건이 맞지 않으면 단 1번도 실행되지 않는 반면 do-while 은 일단 한번은 조건 없이 실행하고, 그 후에 조건을 검사해 반복해서 실행한다

👇코드예제

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    int i = 0;

    void Start()
    {
        do
        {
            Debug.Log(i);
            i++;
        } while (i < 10);
    }
}

✏️ 무한 루프

  • 반복문은 정해진 회수만큼 반복한 후 종료하지만 이를 정해진 회수없이 무한하게 실행하도록 할 수 있다
  • 반복문 내부 또는 다른 곳에서 이 반복문을 종료 시킬 수 있는 코드를 반드시 작성해야 한다

👇 무한 루프 사용 방법
for 반복문은 세미콜론 사이에 들어가는 문장을 작성하지 않으면 되고, while, do-while은 조건에 true 를 작성해 조건이 계속 참이도록 설정


✏️ 점프문 break, continue

  • 흐름을 끊고 프로그램의 실행 위치를 원하는 곳으로 이동시킨다

  • break

    • 현재 실행중인 반복문이나 switch 문의 실행을 중단할 때 사용
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        void Start()
        {
            for (int i = 0; i < 10; i++)
            {
                if ( i == 5)
                {
                    break;
                }
                Debug.Log(i);
            }
        }
    }
    // break 는 현재 실행준인 반복문의 실행을 중단하기 때문에
    // i 가 5가 되면 반복문을 종료한다.
    // 결과는 0, 1, 2, 3, 4까지만 출력된다.
  • continue

    • 반복문에서 현재 조건을 건너뛴다
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Test : MonoBehaviour
    {
        void Start()
        {
            for (int i = 0; i < 10; i++)
            {
                if ( i == 5)
                {
                    continue;
                }
                Debug.Log(i);
            }
        }
    }
    // index가 5인 조건만 건너뛰고, 반복문 자체를 종료 시키지는 않는다.
    // 결과는 0, 1, 2, 3, 4, 6, 7, 8, 9가 출력된다.
  • goto

    • 프로그램 흐름을 알기 어렵게 만드기 때문에 지양
    • 중첩 반복문 등 빠져나오기 번거로운 한해서만 사용
  • return

    • 메소드 (Method)에서 다루는 내용

0개의 댓글