반복문에 대해서 알아보죠
몇줄의 코드를 가진 while 반복문이 여기 있고 메시지를 화면에 계속해서 써내려갈 수 있어요
만일 여기에서 메시지를 다음과 같이 바꾸면 그 모든 메시지를 바꾸게 됩니다
어떻게 작동하고 있는 것일까요? 잠깐 코드를 다시 살펴봅시다
먼저, 다시 처음으로 돌아가서 반복문을 사용하지 않고 이런 프로그램을 작성할 수 있는지 생각해봅시다
그러려면 아마도 진짜로 수많은 문장을 그야말로 계~속 써야할 것입니다
그러니까 메시지를 첫번째 입력하고 그 문장들이 화면의 맨 마지막까지
충분히 채울 수 있도록 계속해서 적어야 할 것입니다
하지만 이 방법은 많은 작업을 해야해요
왜냐하면 창 맨 밑은 너무 멀고 심지어 지적을 하나 하자면
여기서 70은 아닌 것 같아요 보다 작은 값인 60정도가 맞겠네요
이 숫자는 작업에 영향을 줄 것입니다 보다 작은 값이 필요하게 되면
이런 방식으로는 더 많은 메시지를 불러야하죠
그리고 사실, 이 방법으로 아래쪽까지 채우는 것은 너무 길어요
이는 정말 고통스럽습니만 고맙게도 우리를 도와줄 반복문이라는 것이 있습니다
지금부터는 이런 반복되는 코드들을 볼때마다
"내가 반복문을 사용할 수 있을까?"를 먼저 생각하게 될 거에요
반복문은 각각의 시점에 코드를 약간 변경하면서 일련의 코드를 계속해서 반복합니다.
그럼 어떻게 이 코드가 반복문을 가지도록 수정할 수 있을까요?
우선 "while"과 소괄호, 중괄호가 필요합니다 어떤 메시지 창이 중간에 나오지만
아직 우리가 완료하지 않아서 그러니 신경쓰지마세요 끝마치게 되면 사라질 거에요
여러분이 반복문을 사용할 때마다 3가지 주요 질문들에 답해야 해요
여기 있어요
첫번째 질문, "무엇을 반복하길 원하는가?"
반복하고 싶은게 무엇이든 먼저 중괄호 안을 보세요
"text"함수를 반복해서 사용하고 싶다면 이 안에 넣으세요
하지만 조금 문제가 있네요, 그렇죠?
현재는 "text"함수만 반복하고 있지 바뀌어야 할 무언가가 없네요
이것이 두번째 질문을 던져주네요 "매번 변경되기를 원하는 것은 무엇인가?"
그래서 "y"위치를 바꾸고자 합니다 처음에는 60이고
그 다음은 80이 되기를 원해요 그러므로 변수를 사용하도록 만들겁니다
y 위치이니까 변수를 y라 부를게요 그리고 변수 y를 위쪽에 선언합니다
그러면 y값을 40부터 시작할게요 그리고 y 값을 바꾸어야 해요
여기 아래에서 할 수 있어요 "y =y+20" 이라 할게요
이렇게 되면 y값은 매 번 커지게 되겠죠
사실, 우리가 예전에 배운 것 처럼 보다 짧게 "+="와 같이 쓸 수도 있어요
정말 멋지네요 그러면 이제 세번째 질문에 답해 봅시다
"얼마나 오래 이것을 반복하기를 원하는가?"
이것을 계속해서 반복하고 싶어도 영원히 도는 것을 원하는 것은 아니죠?
이 코드를 영원히 돌리게되면 우선 매우 오랫동안 기다려야 할거고 브라우저도 아마 멈출거에요
그러므로 우선은 이 페이지 맨 아래까지만 해볼게요
이는 y값이 400보다 작을때를 의미하므로
여기 괄호 안에 "400 보다 작으면" 이라는 조건을 적어줍시다
그러면 메시지가 화면의 맨 아래쪽까지 써지게 됩니다
보이는 것 처럼 이 방법은 긴 코드를 작성해야하지만
화면의 반도 채우지 못했던 이전의 접근방식보다 간단합니다
이제는 우리의 프로그램이 있으니까 이 부분은 지울수 있습니다
이제 이것이 어떻게 작동하는지 보다 자세하게 이해해 봅시다
y를 매번 출력해보고 싶으면 여기 메시지에 "y is now" 를 입력합니다
그리고 message의 끝부분에 y를 붙이면 그 값을 볼 수 있습니다
순간, y값은 20씩 값이 증가하고 그 값을 여기서 바꿀 수 있습니다
즉 여러분은 이미 알고있는 것 처럼 이를 50씩 증가하도록 할 수 있습니다
그러면 현재 그 값은 50씩 증가하게 됩니다.
다른 값들을 넣어보고 그것들이 어떻게 바뀌는지 확인해 보세요
그리고 프로그램이 멈추기 전까지 그것들이 어떤 영향을 주는지 볼 수 있습니다
이것을 이해하기 위해서 여러분은 이를 if문처럼 생각해볼 수 있어요
우리는 이미 배운것 처럼 여기에 boolean 표현식을 가지고 있고
그리고 이 안에 실제 실행할 코드들이 있고
수식이 참이면 동작하고 거짓이라면 끝으로 넘어갑니다
하지만 while 반복문에 흥미로운 점이 있어요
그 비밀을 아래에 써볼게요 "go back to the start of the loop"
이것의 의미를 보자면 구문의 끝에 오면 계속 진행하는 대신
"If"문처럼 값을 남기고 다시 처음으로 돌아가서 반복문이 동작해요
반복문을 돌 때마다 다시 처음으로 돌아가 수식을 확인하게 됩니다
만약 조건이 참이라면 계속 동작하게 되죠
여러분이 예상하는 대로 반복문은 계속 반복됩니다
위로 다시 돌아가 조건을 확인합니다
y가 아직 279보다 작나요? 참이면 동작하고 또 한번 이상 확인하게 되죠
만일 조건이 거짓이 되면 시작점으로 돌아갑니다
그리고 마침내 반복문을 벗어나 프로그램의 다음부분이 동작합니다
반복문을 이용하는 보다 흥미로운 방법들이 수없이 많이 있고 곧 배워보게될 거에요
하지만 지금은 좋은 시작을 하기위해 출발했을 뿐입니다