Combine1 → Combine2 변환

<aside> 💡

이전의 설명에서,

'반복문이 실행될 때 마다 테스트 조건을 매번 평가해야 한다’

라는 내용 존재 (3.6.7절)

</aside>

Before

출처 : CSAPP p.535

출처 : CSAPP p.535

After

출처 : CSAPP p.537

출처 : CSAPP p.537

<aside> 💡

Code Motion

위와 같이, 결과가 변하지 않는 연산을 루프 밖으로 이동시켜 호출 횟수 최소화하는 최적화 기법

</aside>

String Lowercase로 비효율성 확인

<aside> 💡

lower1의 문제

</aside>