2014-09-27 3 views
-2

이것은 매우 기본적인 자바 스크립트 질문입니다. 내가 이름에서 알 수 있듯이 for 루프이for 루프 및 음수

for (i=0;i<=negativeorpositivenumber;i++) { 

처럼 시작하는이, 참조 positiveornegativenumber 변수 중 하나 양 또는 음의 수를 포함 할 수 있습니다. 결과적으로, 변수가 양수이면 for 루프가 작동합니다. 음수이면 이미 음수 또는 양수보다 큰 값이므로 루프가 즉시 종료됩니다.

두 가지 루프 (음수와 양수)를 사용하지 않고도이 방법을 사용할 수 있습니까? 그래서 내가 변경 < = i> = 및 i ++로 - 만약 negativeorpositivenumber 변수가 음수라면?

이 질문은 둘 이상의 언어에도 적용될 수 있습니다.

편집 : 아마도 나는 이것을 더 분명하게해야했습니다. i 값은 실제로 카운트 다운해야하기 때문에 절대 값을 사용할 수 없습니다. 그러나 도움이되고 Math.abs를 사용하여 답변 한 모든 사람들에게 감사드립니다.

+1

() 스와로 만들려면 다시 말하자면, 어떤 경우에도 항상 긍정적입니다. for (i = 0; i <= abs (negativeorpositivenumber); i ++) { –

+0

절대 값을 취하십시오. –

+0

올바른 숫자 pf 반복을 얻으려고하거나 루프의 실제 값을 루프 내에 넣는 것이 목표입니까? –

답변

2
for (i=0;i<=Math.abs(negativeorpositivenumber);i++) { 
    var original = negativeorpositivenumber > 0 ? i : -i; // optional 

Documentation here.

+0

'negativeorpositive'의 마이너스 valiues는 여전히 카운트 업됩니다. – Guffa

+0

수정을위한 코드 라인이 추가되었습니다. –

+0

아하! 이것이 제가 찾고 있던 것입니다. 루프가 작동 할뿐만 아니라 변경 될 수도 있으므로 카운트 다운됩니다. 나는 그것이 가장 가까운 것으로 생각한다. 고맙습니다! – tomysshadow

0

왜 절대 값을 사용하지 않습니까? 위의 의견과 비슷하지만 숫자의 부호에 따라

for(int i = 0; i < abs(positiveorneativenumber); i++) 
{ 
    //do stuff 
} 
+0

다른 답변에 따르면 함수는 JS에서 Math.abs라고합니다. 그러나 그것은 여전히 ​​나의 질문에 대답하지 않습니다, 왜냐하면 나는 카운트 다운해야하기 때문입니다. – tomysshadow

0

,이 같은 while 루프를 수행 할 수 있습니다

어느 한 방향으로 반복하려면
var sign = negativeorpositivenumber? negativeorpositivenumber <0?-1:1:0 
while(i != 0){ 
    i -= sign; 
} 
+0

로그인 (자바 스크립트) http://stackoverflow.com/questions/7624920/number-sign-in-javascript – gabber

0

, 먼저 당신이 어디에 있는지 확인할 수 있습니다 그리고 경계가 무엇인지 것 :

var dir = negativeorpositivenumber > 0 ? 1 : -1; 
var min = negativeorpositivenumber > 0 ? 0 : negativeorpositivenumber; 
var max = negativeorpositivenumber > 0 ? negativeorpositivenumber : 0; 

for (var i = 0; i >= min && i <= max; i += dir) { 
    ... 
} 

데모 : http://jsfiddle.net/Guffa/cbh5c7rb/

당신이 자바 스크립트 복근을 사용할 수