티스토리 뷰

반응형

.



안녕하세요. Base Of Coding입니다.


여름의 계절이 가고, 코딩을 배우기 좋은 ( ?!! ) 계절 가을이 온 것 같습니다ㅎㅎ


오늘 배워 볼 내용은, for문입니다. 자주 쓰이는 반복문 중 하나입니다.


저의 글 들을 보지 못하신 분들 또는 아직 if문과 switch문에 대해서 이해가 잘 가지 않는다 싶으시면, 3~4편을 보고 오시기를 추천드립니다.



한번 for문에 대해서 간단하게 배워보도록 하죠.





< 1. for문이란? >

- for문은, while문이란 것과 함께 대표적인 반복문으로써, 선언 해 놓은 조건이 맞을 때까지 반복을 시켜주는 방식입니다.

사용 방법은 이 코드와 같습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ForTest : MonoBehaviour 
{
    int i;
 
    private void Start()
    {
        for(i = 0; i < 10; i++)
        {
            Debug.Log("Base Of Coding");
        }
    }
}

( 실행 순서 )


1. int i라는 정수형 변수를 선언합니다.
2. Start함수에서, for문을 만들어주고, 안에 Debug.Log("Base Of Coding"); 이란 코드를 입력합니다.
3. 실행을 해보면, Base Of Coding이란 출력값이 10개가 나옵니다. 왜 나오는 지 4번 부터 설명해드리겠습니다.
4. i라는 변수를 0으로 일단 초기화를 해줍니다.
5. 초기화 해준 값이 10보다 작은 지를 확인합니다.
6. 맞다면, 중괄호안에 있는 Debug.Log문을 실행합니다.
7. 다시 for문으로 돌아와서, i를 증가시킵니다.
( 전위, 후위 증가 연산자라는 것이 있는데, 뒤에 ++가 붙은 것을 후위 연산자라고 합니다. 이 연산자는 해당 값을 1증가 시킵니다. 하지만 전위와 후위증가 연산자는 조금 다르기 때문에, 연산자 글에
맨 밑에 MSDN 글을 참조하고 보시면 좋습니다. )

8. i가 증가 되었으면, 1이 되겠죠? 그 1이란 값이 10보다 작은 지를 확인하고, 맞다면 다시 중괄호에 있는 것을 실행시킵니다.

9. 이러한 작업을 i가 0~9까지 증가되기 때문에, 10번 실행하게 되는 반복문이라고 보시면 됩니다.






< 2. for문을 사용해보면서 익혀보도록 합시다. >

1 ) 셋팅

- 전 ForTest라는 게임오브젝트와 그 안에 ForTest라는 스크립트를 추가하였습니다.



2 ) 코드 보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ForTest : MonoBehaviour 
{
    private void Start()
    {
        // 후위 증가를 사용한, for문
        for(int i=0; i<5; i++)
        {
            Debug.Log(i + 1 + "번 증가");
        }
        
        // 후위 감소를 사용한, for문
        for(int i=5; i>0; i--)
        {
            Debug.Log(i);
        }
    }
}


3 ) 실행 결과


4 ) 풀이

- 일단 int i라는 값은, 초기에 만들어주셔도 상관 없지만, for문안에서, 만들어주셔도 괜찮습니다. 그렇게 만드는 것이 더 좋습니다. 나중에 전역변수와 지역변수라는 부분도 올릴 예정이지만, 그 글을 보시면 아 왜 for문 안에 선언과 초기화를 동시에 하는 것이 좋겠구나라는 것을 아실 수 있으실겁니다. 일단 이 글을 보시는 분들은 프로그래밍을 배우시는 분들이시기 때문에, 아직은 모르셔도 좋습니다.
기초부터 탄탄하게 쌓고 천천히 배우시는 게 좋겠죠??


< 순서 >

1. for문으로, int i를 선언하고, 0으로 초기화를 했으며, i가 5보다 작을 때까지 반복하는 반복을 만든 것입니다.

2. i가 0이면서 5보단 작은 수이기 때문에, 중괄호 안에 있는 출력문을 실행합니다.

3. 다시 돌아와서, i를 증가시키고, 5보다 작은 지를 비교합니다. i를 증가 시키면 1이란 값이 나오기 때문에, 5보다 작으니깐 다시 중괄호 안에 있는 출력문을 실행하겠죠?

4. 이렇게 반복해서, 5보다 작은 최대 수인 i가 4가 될 때까지 반복을 하기 때문에, 0~4 즉, 5번을 실행하게 됩니다.

5. 후위 증가 반복문을 빠져나왔는데, 또 후위 감소 반복문이 기다리고 있습니다.


6. 후위 감소도 증가랑 똑같은 방식입니다. 선언 및 초기화 부분이 0이 아닌 다른 수라는 것만 제외하고 말이죠.

7. i를 5로 선언 및 초기화를 해놓고, i가 0보다 큰 지를 비교합니다.

8. i에 있는 값이 0보다 크기 때문에, 중괄호 안에 있는 출력문을 실행합니다.

9. 그리고 다시 for문으로 돌아와서, i를 뺍니다. 그럼 4가 되겠죠?

10. 4가 0보다 큰지를 비교합니다. 크기 때문에 다시 중괄호 안에 있는 출력문을 실행합니다.

11. 이렇게 반복해서, i를 감소시켜서 0보다 큰 수인 최소 1인 수가 될 때까지 반복을 시킵니다.

12. i가 5 , 4 , 3 , 2 , 1이 될 때까지 반복시키기 때문에 이것 또한 5번을 실행하게 되는 방식입니다.






< 3. 중첩 for문 사용해보기 >

- 중복 for문을 이용해서, 구구단을 출력해보려고 합니다. 기본적으로 코딩을 하면서, 중첩 for문을 사용해보면, 구구단을 만드는것을 많이 하는데요. 한번 해보도록 하죠.


1 ) 코드 입력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ForTest : MonoBehaviour 
{
    private void Start()
    {
        for(int i=2; i<=9; i++)        // 2단부터 시작하기 때문에, 2로 초기화하고, 9단을 최대로 잡고, i가 9랑 같을 때 까지 반복한다.
        {
            for(int j=1; j<=9; j++)    // 각 단마다 곱해줘야하는것이 1~9이기 때문에, 1로 초기화하고, j가 9랑 같을 때로 설정함.
            {
                Debug.LogFormat("{0} x {1} = {2}", i, j, i * j);        // 2,3,4...9단까지의 결과가 나옴.
            }
            // 안에 for문이 끝나면, 다시 저 위에 있는 int i로 되어있는 for문으로 돌아가서, i를 증가시키고 다시 안에 있는 것을 실행.
        }
    }
}



2 ) 실행 결과


제일 마지막 2 x 1 ~ 9 x 9 까지의 결과값이 출력이 됩니다.


3 ) 풀이

1. 2단부터 시작하기 때문에, int i를 2로 초기화하고 시작합니다.
2. 그리고, 중괄호 안으로 들어갑니다. 하지만 또 for문이 있네요?
3. 그 안에 for문을 보니, int j로 되어 있고, 1로 초기화가 되어 있네요.
4. 그 안에 있는, Debug.LogFormat 함수를 실행합니다. 그리고 빠져나가는 것이 아니라..
5. int j의 값을 증가시키고, 조건과 맞는 지를 확인합니다.
6. 그리고 맞다면, 또 Debug.LogFormat을 실행합니다. 이렇게 총 9번을 실행하고!
7. 다시 올라가서, i값을 증가시키고, 조건과 맞는 지를 보고, 또 int j 부분으로 가서 실행하고 돌아오는 방식입니다.
8. 이렇게 실행하게 되면, int i 부분을 8번, int j 부분은 9번이기 때문에, 총 72번이 실행하게 되겠네요.

중첩 for문은 이런 형식으로 많이 사용하게 됩니다. 2차원 배열이란 것에도 많이 사용하게 되는데

그냥 아 이런식으로 진행이 되는 거구나 라고 생각하시면 좋겠습니다.

해보시면서, 9단부터 시작해서, 2단이 실행하게 되는 방식으로 만들어보시면서 응용해보시면 금방 이해가 가실겁니다.
잘 모르시겠다면, 직접 종이에 그려가면서 해보시는 것을 추천드려요ㅎㅎ 저 또한 처음 코딩 배울 땐 이해가 잘 안갔습니다..ㅠㅠ



이렇게 for문에 대한 내용을 배워봤습니다.


반복문중에서 제일 많이 쓰이는 방식이기도 하고, 잘 쓰면 편리한 반복문입니다. while문도 물론 좋은 반복문이지만 for문이 더 명확하고 편리하다고 생각합니다.


다음엔, while문에 대해서 한번 사용해보면서 배워보도록 하겠습니다.


지금까지 Base Of Coding이였습니다. 감사합니다.


- 이 글에 도움이 되셨다면, 공감(♡) 버튼과 댓글 부탁드리겠습니다. - 



반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함