lklslel2016.12.17 11:12
흐음... 진부한 설명은 컴퓨터나 하드웨어 관련 학과의

자료구조나 알고리즘에 대해서 이야기를 해야하겠지만요...

그런 말을 하면 괜시리 머리만 아파오는 것이 알반적이니

알기 쉽게 말을 풀어서 설명해드리겠습니다.

모든 loop(반복)구문들은 { }(대괄호 : 구문의 처음과 끝을 구분짓는 기호)을

기준으로 한 번씩 반복을 합니다.



for (var i = 0; i < 100; i++) {

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i))

}



직접 작성하신 부분을 예로 들자면

실행 순서는 다음과 같이 됩니다.

(그냥 적힌 문자열의 순서대로 설명해드립니다.)


1. 실행할 구문 : for

-> 실행할 구문에 따라 실행하는
방식이 다르므로 반드시 읽습니다.


2. 현재값 : i = 0~99

-> (초기값 0, ++연산으로 }이후에 1만큼 증가)


3. 실행 임계 조건 : i < 100

->i 가 100보다 작을 때 실행됩니다.
i 가 100이 되면 for(){} 의 구문의 실행은 하지 않습니다.


4. 변수 값 조정부분 : i++ (after increase)

-> for(){}가 한번 실행되고 나서 마지막으로 실행됩니다.


5. 구문 내부 읽기 시작 : {

-> { 괄호의 시작기호 - ( / [ / { - 를 만나면

어떤 구문이라도 안에 있는 내용을 우선시합니다.


6. 구문 내부 실행부분 : $gameVariables.setValue(146, this.get_self_variable("병렬처리대상", i));


7. 구문 내부 읽기 종료 : }



실상적인 구문의 실행은 다음과 같습니다.



for문이 처음 실행될 때


for (0; 0 < 100; 0++) {

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 0))

}


....



for문이 100번째 실행될 때


for (99; 99 < 100; 99++) {

$gameVariables.setValue(146, this.get_self_variable("병렬처리대상", 99))

}



for문이 종료될 때


for (100; 100 < 100; )


조건부분의 값이 false를 나타내기 때문에

이후의 처리는 공백상태의 초기 형태를

실행하는 구조로 마무리 됩니다.


어셈블리어로 살펴보면 jump(해당 메모리 주소로 즉각이동명령어) 관련 명령어들이

없고 다음으로 진행하도록 변경됩니다.



※ 어셈블리어란 기계어(0,1로 이루어진 원시언어)보다

최소 한 단계 높은 원시언어로 메모리 영역에서

실제적인 데이터의 처리를 하는데 쓰여집니다.


※ 모든 프로그래밍 언어는 해당 언어에서 어셈블리어로,

어셈블리어에서 기계어로 변환되어서 실행됩니다.



실행에 대한 설명은 이정도로 마무리 짓겠습니다.
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)