반응형

if문 사용시에, 조건문마다 한 변수가 변하는 경우 return 변수를 해주지않으면 조건에 달았을때 멈추지않고 계속 코드를 읽혀간다. 

학원에서 배운 return 에 개념을 다시 찾아봤다!!

1. return 키워드와 값을 지정하게 되면 함수를 호출한 곳에 값을 전달하게 된다.
2. return 키워드를 만날 경우 함수는 종료 된다.

여기서 2번째의 개념을 또!! 또!! 또!! 잊고있었다.

if문을 작성하는 중에 두번의 에러를 마주했다. 

첫번째, if문이 멈추지 않는 것 / 두번째, 변수에 대한 값이 변화하지 않음.

1. 첫번째 if문이 멈추지 않는 에러 

위에서 설명한 return의 두번째 개념을 잊고있었기 때문이다. return 이 없기 때문에 계속해서 alert이 뜨더라. 왜? 함수가 계속 실행되니깐. 멈춤의 명시가 없기 때문에!

그래서 고쳐서 return 값을 넣어줬더니 두번째 에러와 마주했다.

 

2. 변수에 대한 값이 변화하지 않은 채로 함수가 끝남.  'unreachable code detected' 에러를 마주함

첫번째 조건문에서 보면 한조건에 만족했을 때 return submitFlag 를 만나서 함수가 끝나게 된다. 하지만 조건을 만족하지못해 else로 갔을 경우에는 함수가 종료되지 않게 해줘야한다 ( 뇌피셜, 아니라면 댓글로 남겨주세요).

하지만 현 상황에서는 else의 경우에도 함수를 종료하고 if의 경우에도 함수를 종료하기때문에 그 아래에있는 함수들은 모두 무용지물이 되어버리기때문에 'unreachable code detected 라는 에러가 발생하는 것이다.

해결책은 두가지인 것 같다.

첫번째는 if문에만 return 을 넣어주는 것. (아래와 같이)

두번째는 else if 를 사용해주는 것. 

이경우는 else대신 else if 를 사용했다. 그래서 else if 문에 해당되는 조건에 만족하지 못하면 그 아래 함수로 내려가기때문에 가능한 것이다!!!

 

 

반응형

+ Recent posts