< Return to Video

Nested For Loops (Video Version)

  • 0:00 - 0:03
    보석은 예쁘죠
  • 0:03 - 0:08
    보석 한개보다 좋은 건 여러개의 보석이죠
  • 0:08 - 0:13
    이제 우리는 loop을 사용해서
    여러개의 보석을 만들줄 알죠
  • 0:13 - 0:16
    for loop을 사용해
    한 줄에 12개의 보석을 만들어보죠
  • 0:16 - 0:20
    왼쪽에서 오른쪽으로요
  • 0:20 - 0:22
    이렇게요
  • 0:22 - 0:31
    for 안에 변수 i = 0; i는 12보다 작고; i++
  • 0:31 - 0:36
    이 줄을 복사해서 for문 안에다가 붙여넣어요
  • 0:36 - 0:40
    이렇게 하면 12개의 보석이
    맨 윗줄 한 칸에 겹쳐서 나와요
  • 0:40 - 0:43
    근데 우리는 화면을 가로질러서 나오게하고 싶어요
  • 0:43 - 0:46
    그렇다는 건 x값이 바꿔야한다는거죠
  • 0:46 - 0:50
    지금은 36인데, 매번 값이
    다르게 나오게하고 싶어요
  • 0:50 - 0:52
    i값을 이용해서 하면 됩니다
  • 0:52 - 0:56
    간단하게 i 곱하기 36
    이렇게 하면
  • 0:56 - 1:03
    첫번째 값은 0이고, 다음은 36, 72....
  • 1:03 - 1:05
    이제 한 줄의 보석이 나오네요
  • 1:05 - 1:08
    인디아나존스나 알라딘 영화를 보면
  • 1:08 - 1:11
    보석을 발견할 때
  • 1:11 - 1:14
    보통 이렇게 한 줄의 보석만을 발견하지 않죠
  • 1:14 - 1:17
    보석 더미를 발견하죠
  • 1:17 - 1:22
    그럼 어떻게 하면 보석을 쭈욱
  • 1:22 - 1:25
    스크린 밑에까지 나오게 할 수 있을까요?
  • 1:25 - 1:31
    우선 이 for loop을 복사 붙여넣기 한 후
  • 1:31 - 1:35
    y를 매번 바꿔줍니다
  • 1:35 - 1:38
    60 그 다음에는 90
  • 1:38 - 1:42
    이제 보석 3줄이 생겼네요
  • 1:42 - 1:45
    하지만 이 방법이 좋지 않은게
  • 1:45 - 1:49
    매줄마다 복사 붙여넣기 한 후
    값을 바꿔줘야되요
  • 1:49 - 1:53
    이렇게 반복적인 코드를 작성하면
  • 1:53 - 1:57
    "loop을 사용해야지" 라는 생각이 들지만
  • 1:57 - 1:59
    이미 loop을 쓰고 있어요
  • 1:59 - 2:04
    그렇다면 이런 반복적인
    코드 작성의 해결책은 뭘까요?
  • 2:04 - 2:10
    Nested for loop (겹쳐진 for loop) 이라는 것이 있습니다
    loop 안에 loop 입니다
  • 2:10 - 2:12
    바깥쪽 loop을 만든 후에
  • 2:12 - 2:15
    이건 스크린 밑으로
    내려가는 걸 해주는 loop이고
  • 2:15 - 2:19
    안쪽 loop은 보석 한 줄을
  • 2:19 - 2:22
    왼쪽에서 오른쪽으로 나타나게 합니다
  • 2:22 - 2:24
    어떻게 하는지 보여드리죠
  • 2:24 - 2:30
    변수 i를 사용하고 있으니
    다른 변수 j를 사용하죠
  • 2:30 - 2:37
    변수 j = 0; j는 13보다 작고; j++
  • 2:37 - 2:42
    이게 위에서 아래로 내려가는 것을
    담당하는 저희의 바깥쪽 loop이 됩니다
  • 2:42 - 2:48
    기존에 사용했던 for loop을 안에다가 넣습니다
  • 2:48 - 2:53
    들여쓰기를 고치고, 기존의 것을 지웁니다
  • 2:53 - 2:59
    이렇게하면 한 줄에 똑같은 보석이 겹치게 나옵니다
  • 2:59 - 3:02
    그러니 y의 값이 변하게 해줘야겠죠
  • 3:02 - 3:04
    기존의 것을 그대로 가져왔기 때문에
  • 3:04 - 3:06
    y값이 항상 90입니다
  • 3:06 - 3:09
    매 행마다 y의 값이 바뀌게 하고 싶어요
  • 3:09 - 3:16
    x는 i값을 이용하니, y는 j를 이용하게 합니다
  • 3:16 - 3:25
    x에서 했던 방식대로 j 곱하기 30을 합니다
  • 3:25 - 3:30
    짜잔! 멋집니다.
  • 3:30 - 3:32
    다시 우리가 한 것을 살펴보죠
  • 3:32 - 3:38
    바깥쪽 loop은 j가 13이 될 때까지 실행하며
  • 3:38 - 3:44
    매번 안쪽 loop을 실행시킵니다
  • 3:44 - 3:49
    안쪽 loop은 i가 12이 될 때까지 실행하고
  • 3:49 - 3:55
    매번 i와 j를 이용하여
    x와 y위치에 보석을 그립니다
  • 3:55 - 4:00
    따라서 i의 값이 j의 값보다 훨씬 더 자주 변하죠
  • 4:00 - 4:05
    더 잘 이해하기 위해 실제로 i 값과 j 값이 변하는 것을
    시각적으로 보도록 합시다
  • 4:05 - 4:09
    이미지 출력 부분을 주석처리하고
  • 4:09 - 4:12
    색이 나오게 한 후
  • 4:12 - 4:17
    text 명령어를 이용해 j값이 보이게하죠
  • 4:17 - 4:22
    이 위치에 j가 나타나도록 입력합니다
  • 4:22 - 4:26
    이제 j가 0부터 12까지 나오는게 보이네요
  • 4:26 - 4:32
    이건 보석의 행의 위치와 같죠
  • 4:32 - 4:36
    이제 i의 값이 어떻게 변해 가는지를 보도록 합시다
  • 4:36 - 4:43
    다른 색깔이 나오게 한 다음
  • 4:43 - 4:46
    i를 입력해서
  • 4:46 - 4:50
    x 값이 화면의 가로로 나오게 x값이 변하게 해줍니다
  • 4:50 - 4:55
    y에도 똑같이 해주고요
  • 4:55 - 5:00
    i가 0부터 11까지 나오는게 보이네요
  • 5:00 - 5:05
    i가 더 자주 변하는 걸 알 수 있죠
  • 5:05 - 5:09
    그리고 이 줄의 코드가
    윗줄의 코드보다 더 많이 실행됩니다
  • 5:09 - 5:14
    왜냐하면 이 줄은 안쪽 loop이
    실행될때마다 실행되는데
  • 5:14 - 5:20
    윗 줄의 코드는 바깥loop이 실행될때만
    실행되니까요
  • 5:20 - 5:22
    i와 j값을 출력해봤는데요
  • 5:22 - 5:27
    nested for loop을 더 잘 이해하셨기를 바랍니다
  • 5:27 - 5:30
    다시 보석 문제로 돌아가보죠
  • 5:30 - 5:34
    nested for loop에서 많은 걸 할 수 있는데요
  • 5:34 - 5:37
    이 세상에 있는 것들 중에서
  • 5:37 - 5:40
    2차원 무늬들은 체스보드나 퀼트
  • 5:40 - 5:45
    미국 국기의 별, 멋진 패턴, 벽지모양 등이 있는데
  • 5:45 - 5:47
    우선 이 코드를 이용해
  • 5:47 - 5:50
    이미지를 바꿔보도록 하죠
  • 5:50 - 5:55
    하트모양이 나오도록 해보죠
  • 5:55 - 5:59
    짠!
Title:
Nested For Loops (Video Version)
Description:

more » « less
Video Language:
English
Duration:
06:00

Korean subtitles

Revisions