Graceful Light

Single line for loop

2017-03-31


예제

Single line

1
2
3
4
var i, sum = 0;
for(i=0; i<10; ++i, sum+=i);
console.log(`${i} ${sum}`);

일반적인 형태

1
2
3
4
5
6
var j, sum2 = 0;
for(j=0; j<10; ++j){
sum2 += j;
}
console.log(`${j} ${sum2}`);

두 예제의 결과는 어떻게 나올까.
첫번째는 10 55, 두번째는 10 45가 나온다.

설명

i와 j의 전위 후위 연산은 별로 중요하지 않다. (++i나 i++이나 결과는 같게 나온다)

Single line

1
2
3
4
5
var i, sum = 0;
// 1 2 3 4
for(i=0; i<10; ++i, sum += i);
console.log(`${i} ${sum}`);

일반적인 형태

1
2
3
4
5
6
7
8
var j, sum2 = 0;
// 1 2 4
for(j=0; j<10; ++j){
// 3
sum2 += j;
}
console.log(`${j} ${sum2}`);

안티패턴의 끝

1
2
3
4
5
var k, sum3 = 0;
// 1 2 4 5
for(k=0; k<10; ++k, sum3 += k)
// 3
console.log(`${k} ${sum3}`);

연산의 실행 순서가 다르다고 이해하면 되겠다.

🍺

Buy me a beer 🍗

공유하려면 QR코드를 스캔해주세요