'일/coding'에 해당되는 글 1건

  1. 2018.01.20 for while 비교(for vs while)
일/coding2018. 1. 20. 15:39

여태 개발을 하면서 습관적으로 반복문을 for문만을 사용했다. 알고리즘 공부하다보니 때로는 while을 사용하는 것이 소스 간결함에서 유리할 수 있다는 것을 알았다. 소스가 간결하다는 것은 해석하기도 좋다는 것이다. 이것을 비교하여 정리해본다.


 

 for

while 

사용법 

 for(반복 판단할 변수 초기화/일반적으로 int i=0;

      반복 조건(boolean 형태);

      반복 판단할 변수 처리/일반적으로 i++){

....


구문 처리

...

}

while(반복 여부 판단할 수 있는 boolean 형태/구문 내에 사용하는 변수나 조건으로 판단 할 수 있음){ 

....

구문 처리

또는

구문 처리+반복 여부 판단할 변수 처리

....

}

단순 반복문 구현 적합 

비교적 간단

비교적 귀찮음.

반복 여부 조건이 내용을 구현하면서 달라지는 경우를 고려하여 설계할 경우 for에 비하여 비교적 귀찮음. 또는 반복여부할 변수를 따로 관리해야하니 귀찮음 >> 개발자 자원(시간)이 소요됨.

알고리즘 구현 적합 

for()와 if()문, break문 사용 시 인자 내용 변경등을 고려해야 하기 때문에 소스의 양이 많아지고 가독성이 떨어질 수 있음.

break시점을 생각하지 않고 단순 구현만을 할 경우 필요이상으로 반복하여 퍼포먼스 차이 발생 가능.

비교적 간결

서로 비교한 결론 

단순 반복일 경우 for 문을 사용하는 것이 소스 해석이 더 편하다. 

for안에 if를 사용 && 특정부분에서 break 시키는 것을 원할 경우 while이 더 소스가 간결하다.


결론

-단순 반복문 사용 시 >> for문이 쓰기도 편하고 해석하기도 편하다.

-반복 조건이 유동적으로 변경되는 알고리즘 구현 >> for, if문 break를 사용할 경우 for문보다 while문이 더 간결하게 작성할 수 있다. 이런 경우에 for문 사용 시 반복 조건 및 내부에 여러 변수와 break처리가 쓰이므로 소스가 길어지고 이에 따라 해석이 더 어려워지는 경우가 발생한다.(절대적인 기준은 아님)

Posted by JayCeeP