p5js로 시작하기 [8]
이 글에는 이해를 돕기 위한 거짓말이 조금 포함되어 있습니다.
개체 생성 반복하기
대표적인 반복문으로 for()
문이 있습니다.
기본 모양새는 이렇게 되어있습니다.
1
2
3
4
5
// 기본 구성
for (let i = 0; i < 100; i++) {
// 반복 행동 코드 블럭
console.log(i, '번째 반복 시행.');
}
이렇게 구성되어 있구요,
1
2
3
for (<변수 선언>; <조건문>; <변형>) {
<코드 블럭>
}
이 순서로 동작합니다.
1
2
3
for ( (0) ; (1) ; (3) ) {
(2)
}
구성 따라가기
위 예시에 있는 for()
문을 따라가면
- 변수 i를 선언하고, i = 0 으로 설정합니다.
- i(0) < 100 인가요? -
true
- 반복 행동 코드 블럭을 실행하여
0번 반복 시행.
을 콘솔에 출력합니다.- i++ 처리 해줍니다. (이제 i = 1)
- i(1) < 100 인가요? -
true
- 반복 행동 코드 블럭을 실행하여
1번 반복 시행.
을 콘솔에 출력합니다.- i++ 처리 해줍니다. (이제 i = 2)
…- i(99) < 100 인가요? -
true
- 반복 행동 코드 블럭을 실행하여
99번 반복 시행.
을 콘솔에 출력합니다.- i++ 처리 해줍니다. (이제 i = 100)
- i(100) < 100 인가요? -
false
- 반복문 이후 코드를 실행합니다
이런식으로, 변수 선언은 시작할 때 한번만 진행한 후 조건이 거짓이 될 때까지 코드 블럭을 반복시행합니다.
이 때, 코드 블럭에서 반복하는 행동을 이번 프레임 안에 전부 실행
합니다. 이러한 특성으로 인해, 1프레임(보통 1/60초) 안에 반복문이 해결되지 않으면 프로그램이 멈추거나 화면이 두둑두둑 끊기는 현상을 마주할 수 있습니다.
코드 블럭과 지역 변수
함수는 무엇인가
글에서 코드 블럭 얘기를 하며 코드의 지역 구분
이라는 표현을 썼었습니다. 지금이 설명할 적기인 것 같군요.
우리가 중괄호 {}
를 사용하여 코드를 작성하면, 중괄호 안쪽에는 일종의 지역
이 형성됩니다.
1
2
3
4
5
6
7
8
9
10
var TargetNumber = 20;
let TestThis = 'Test';
function TestThis() { // <-- 이 지역은 함수
if (TargetNumber < 20) { // <-- 이 지역은 조건문 발동 부분
let ThisNumber = 10;
var Variable = 'Text';
console.log('숫자가 작습니다');
}
}
지역 내에도 변수를 만들 수 있는데 이런 경우 지역 변수
라고 부르며 그 지역을 벗어나는 경우 변수가 삭제됩니다. 자바스크립트의 경우 변수 선언하는 방식이 var
와 let
두가지가 있는데
var
: 지역과 무관하게 사용할 수 있음 (전역 변수)
let
: 해당 지역을 벗어나면 사용할 수 없음 (지역 변수)
- 둘 다 변수 종류에 자유로움
이렇게 동작합니다.
이제 다시 반복문 코드를 보면
1
2
3
4
5
6
// for()문의 선언부에서 생성된 i 는
for (let i = 0; i < 100; i++) {
// 이 코드 블럭을 반복할 때까지만 사용 가능하고
console.log(i, '번째 반복 시행.');
}
// 코드 블럭을 벗어나면 사용할 수 없습니다. (선언되지 않은 변수라고 오류 발생)
다음 글에서 계속..
This post is licensed under
CC BY 4.0
by the author.