for 루프가 둘 이상 증가 / 감소 할 수 있습니까?


119

for외에 Javascript 에서 루프 를 증가시키는 다른 방법이 있습니까? 예를 들어 1 대신 3 씩 증가시키고 싶습니다.i++++i

for (var i = 0; i < myVar.length; i+3) {
   //every three
}

4
세 번째 인수를 i = i + 3으로 대체 할 수 없습니까? 아니면 Java에서만 가능합니까?
CptJesus

1
예 그 괜찮아 i++++i같다 i+=1루프 선언을 위해 사용된다면 그렇게 i+=3작동합니다.
elclanrs

1
for루프는하지 증가 아무것도 않습니다. for명령문에 사용 된 코드는 그렇습니다. 수정하려는 방법 / 만약 / 위치 /시기 i또는 그 문제에 대한 다른 변수는 전적으로 귀하에게 달려 있습니다 .
나는 게으른 증오

2
그것은 for 루프가 아니라 무한 루프입니다. 당신은 의미 i+=3합니다.
ninjagecko

2
나는 이것이 간단한 해결책으로 간단한 질문이라는 것을 알지만, 반대 투표의 이유는 무엇입니까? 나는 그것이 중복이 아니라고 확신합니다.
brentonstrine

답변:


253

사용 += 할당 연산자를 :

for (var i = 0; i < myVar.length; i += 3) {

기술적으로는 for 루프의 최종 표현식에 원하는 표현식을 배치 할 수 있지만 일반적으로 카운터 변수를 업데이트하는 데 사용됩니다.

for 루프의 각 단계에 대한 자세한 내용은 MDN 문서를 확인하세요 .


세부 사항에 감사드립니다. 세 번째 슬롯에 고급 표현식을 넣을 수있는 방법이 있다고 확신했습니다. 변수를 정의해야한다는 사실을 잊었 기 때문에 분명히 i+3작동하지 않습니다.
brentonstrine

@brentonstrine : 없음 문제, 다행 내가 도울 수
앤드류 휘태커에게

우리가 할 때 무한 루프의 원인은 무엇입니까 i+3?
Sanjay Shr

1
@SanjayShr은 i+3의 값은 변경되지 않습니다i
Nahid

@Nahid 예, 내 대답을 언급했습니다. Thanx
Sanjay Shr

13

for루프 :

for(INIT; TEST; ADVANCE) {
    BODY
}

다음을 의미합니다.

INIT;
while (true) {
    if (!TEST)
        break;
    BODY;
    ADVANCE;
}

당신은 거의 모든 표현을 쓸 수 INIT, TEST, ADVANCE,와 BODY.

++연산자와 변형은 부작용이 있는 연산자 라는 점에 유의 하세요 (예 i+=1를 들어 사용하지 않는 경우에는 피해야합니다 ).

  • ++i 방법 i+=1; return i
  • i++ 방법 oldI=i; i+=1; return oldI

예:

> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]


5

Andrew Whitaker의 대답은 사실이지만 어떤 부분에도 어떤 표현이든 사용할 수 있습니다.
두 번째 (중간) 표현식은 부울 true또는 false.

for루프를 사용하면 다음과 같이 생각합니다.

for (var i = 0; i < 10; ++i) {
    /* expression */
}

존재로

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}

1

당신은 확실히 할 수 있습니다. 다른 사람들은 당신이해야 할 일을 정확하게 지적했습니다 i += 3. 여기서 수행하는 작업은 모두 추가하는 i + 3것이지만 결과를에 다시 할당하지 않기 때문에 게시 한 작업을 수행 할 수 없습니다 i. i++단지 속기이다 i = i + 1유사 i +=3위한 속기이다 i = i + 3.


1
for (var i = 0; i < myVar.length; i+=3) {
   //every three
}

추가

Operator   Example    Same As
  ++       X ++        x = x + 1
  --       X --        x = x - 1
  +=       x += y      x = x + y
  -=       x -= y      x = x - y
  *=       x *= y      x = x * y
  /=       x /= y      x = x / y
  %=       x %= y      x = x % y

-1

삼항 연산자의 마지막 부분에서는 증분 단계 크기를 지정할 수 있습니다. 예를 들어, i ++는 1 씩 증가 함을 의미합니다. i + = 2는 i = i + 2 등과 동일합니다. 예 :

let val= [];

for (let i = 0; i < 9; i+=2) {
  val = val + i+",";
}


console.log(val);

예상 결과 : "2,4,6,8"

'i'는 원하는 단계 크기에 따라 부동 소수점 또는 정수가 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.