var num:int = 0;
function test():void{
num++
trace("num : " + num);
if(num == 2){
trace("---------------통과");
test();
return;
}
trace("함수 종료");
}
for(var i:int=0; i<3; i++){
test();
}
/*결과
num : 1
함수 종료
num : 2
---------------통과
num : 3
함수 종료
num : 4
함수 종료
*/
어떠한 함수를 실행시키다가 어떠한 조건에 맞아서 자기의 함수를 다시 실행시킬 경우,
return을 시켜주지 않으면 조건에 의하여 다시 함수가 실행된 이후의 과정이 실행되게 된다.
위의 경우, retun;을 빼주게 되면..
/*결과
num : 1
함수 종료
num : 2
---------------통과
num : 3
함수 종료
함수 종료 <-- num :2의 함수의 나머지 과정이 실행됨
num : 4
함수 종료
*/
함수 종료가 2번뜨게 된다. 3의 함수실행 이후에 2의 나머지 함수 부분이 실행되므로.