2014-09-16 3 views
0

숫자 3의 지수를 1000으로 제한하는 간단한 JS 코드를 작성했습니다. while loop을 사용하기로 결정했으며 if 문을 사용하면 while 루프 루프 실행이 느려 집니까?while 루프와 if 문의 조합은 좋은 아이디어입니다.

var print=0,i=0; 
while(check<10000) 
{ 
    print=Math.pow(3,i); 
    if(print<1000) 
     console.log(print); 
    else 
     break; 
    i++; 
} 

물론이 코드의 특정 부분을 의미하는 것은 아닙니다. 이는 매우 간단하기 때문입니다. 아니면 나는 다음과 같은 코드를 사용한다 : 3 개 변수는 사용중인이 경우

var print=0,i=0,check=0; 
while(check<10000) 
{ 
    print=Math.pow(3,i); 
    console.log(print); 
    i++; 
    check=Math.pow(3,i); 
} 

합니다. 어느 쪽이 더 좋고/더 빠릅니까? 미리 감사드립니다.

+1

왜 'while (true)'가 아닌가? –

+1

@ Ja͢ck 나는 잭에 동의한다. 그냥 해. 그렇지 않더라도 IF 문을 사용해서는 안됩니다. 수퍼 메모리 집약적 인 프로젝트에서 일하는 경우가 아니라면 모든 mem 수가 떨어집니다. 당신이이 질문을하고 있을지 의심 스럽지만 : P –

+0

@ Ja͢ck은 그것을 생각했지만, 가장 좋은 방법을 묻습니다. Tnx –

답변

2

중단 조건이있는 루프는 정상적으로 작동하므로 성능 손실에 대해 걱정할 필요가 없습니다. 당신은 대신에 무한 루프를 사용하여 하나의 조건을 줄일 수 있습니다.

for (var i = 1, print = 0; print < 1000; ++i) { 
    print = Math.pow(3,i); 
    console.log(print); 
} 
1

for 루프에 대해 어떻게 :

for (var j=0,k=0;j<10000;j=Math.pow(3,k),k++) console.log(j); 

http://jsfiddle.net/blaird/gmjjr1q7/

+0

왜냐하면 나는 0으로 초기화 되었기 때문에 (쓰기를 잊어 버렸기 때문에), 나는 체크하기 전에 증가한다. 따라서 수표는 항상 인쇄 전에 하나의 지수입니다. –

1

잭에 올바른

그리고이 특별한 경우에 당신은 하나의 반복을 풀다 루프 조건 좋네요을 할 수

그러나 for 루프에 관해서는, 특히 눈에 띄는 정도로 성능에 영향을주지 않으므로 if 문과 관련되지 않습니다.

상수 함수 (if 문, 변수 할당 등)의 수에 지나치게 관심을 두지 말고 루프 사용을 제한하는 데 집중하십시오.

자세한 내용은 Big O Notation을 참조하십시오.