IT

Java에서 루프가 1개 이상 증가하도록 하는 방법

itgroup 2022. 10. 30. 21:06
반응형

Java에서 루프가 1개 이상 증가하도록 하는 방법

다음과 같은 for 루프가 있는 경우:

for(j = 0; j<=90; j++){}

잘 되고 있어요.단, 다음과 같은 for 루프가 있는 경우:

for(j = 0; j<=90; j+3){}

동작되지 않습니다.누가 이걸 설명해 주시겠어요?

그 이유는j+3 않는다j이은 .로 해야 돼요.j = j + 3 ★★★★★★★★★★★★★★★★★」j += 3에, 「」의 j3 :

for (j = 0; j <= 90; j += 3) { }

도 태클을 한 이 없기 Could someone please explain this to me?[ ] [ 럴 、 [ 。

j++속기입니다.실제 조작은 아닙니다(알겠습니다만, 설명을 참고해 주세요).

j++ 동등하다.j = j + 1;인라인 치환을 하는 매크로나 그런 게 아니라는 것만 빼면요. there 、 there 、 there 、 there 、 there 、 there 、 there 、 there 、 there 、 there 、 there 。i+++++i것은 (은 '그것은 '그것'이 '그것'으로 될 수 입니다)i++ + ++i ★★★(i++)++ + i

되는 거죠. '아, 아, 아, 아, 아, 아, 아, 아, 맞다.i++vs 대 ++i 라고 불립니다.이러한것들은post-increment ★★★★★★★★★★★★★★★★★」pre-increment이 붙여졌는지 이 가십니까?왜 그들이 그렇게 이름이 지어졌는지 추측할 수 있나요?중요한 부분은 과제에서 어떻게 사용되는가 하는 것입니다.를 들면, 이렇게 할 수 .j=i++; ★★★★★★★★★★★★★★★★★」j=++i;이치

// declare them all with the same value, for clarity and debug flow purposes ;)
int i = 0;
int j = 0;
int k = 0;

// yes we could have already set the value to 5 before, but I chose not to.
i = 5;

j = i++;
k = ++i;

print(i, j, k); 
//pretend this command prints them out nicely 
//to the console screen or something, it's an example

i, j, k의 값은 무엇입니까?

답을 드리면 해결하도록 하겠습니다.

i = 7, j = 5, k = 7;이것이 사전 및 사후 증가 연산자의 힘이며 잘못 사용할 경우의 위험입니다.그러나 동일한 연산 순서를 작성하는 다른 방법은 다음과 같습니다.

// declare them all with the same value, for clarity and debug flow purposes ;)
int i = 0;
int j = 0;
int k = 0;

// yes we could have already set the value to 5 before, but I chose not to.
i = 5;

j = i;
i = i + 1; //post-increment

i = i + 1; //pre-increment
k = i;

print(i, j, k); 
//pretend this command prints them out nicely 
//to the console screen or something, it's an example

요.++하지 않는지 왜 동작하지 않는지를 조사합니다.j+3아까 내가 '쇼트랜드'라고 불렀던 거 기억나?두 번째 예시는 컴파일러가 명령어를 사용하기 전에 실제로 수행하는 작업이기 때문입니다(이것보다 더 복잡하지만 첫 번째 설명은 아닙니다).'확장된 속기'가i = 리 and 。i + 1이치노

이것은 수학으로 거슬러 올라간다.는 여기서 됩니다.f(x) = mx + b '수식'y = mx + b '을 '무엇'이라고 부를까요?mx + b일 뿐이다.기껏해야 표현일 뿐이다.입니까?j+3되지 않은 은 도움이 않지만 하지 않는 ).할당되지 않은 표현식은 도움이 되지 않지만 CPU 시간을 소비합니다(컴파일러가 최적화하지 않는다고 가정).


저는 그것이 당신을 위해 모든 것을 명확히 하고 당신에게 새로운 질문을 할 수 있는 여지를 주길 바랍니다.건배!

이 예에서는j+=33씩 증가합니다.

(여기서는 별로 할 말이 없습니다.구문에 관련된 것이라면 구글링을 먼저 추천합니다만, 저는 처음이라 틀릴 수도 있습니다.)

for(j = 0; j<=90; j = j+3)
{

}

j+3새 값이 j에 할당되지 않습니다.j=j+3는 새 값을 j에 할당하고 루프는 3만큼 위로 이동합니다.

j++라고 말하는 것과 같다j = j+1이 경우 위와 같이 j에 새로운 값을 할당합니다.

바꾸다

for(j = 0; j<=90; j+3)

로.

for(j = 0; j<=90; j=j+3)

이렇게 해야 한다

for(int j = 0; j<=90; j += 3) 

하지만 조심하라

for(int j = 0; j<=90; j =+ 3) 

또는

for(int j = 0; j<=90; j = j + 3)

간단히 이것을 시험해 보세요.

for(int i=0; i<5; i=i+2){//value increased by 2
//body
}

또는

for(int i=0; i<5; i+=2){//value increased by 2
//body
}

코드를 다음과 같이 쓸 수도 있습니다.

for(int i=0;i<n;i++)
{
      //statements;
      i=i+2;//cause you want to increment i by 3 
}
for(j = 0; j<=90; j++){}

j++는 j=j+1, j값은 이미 0을 더하고 있기 때문에 j+1의 합계가 1이 되고 마지막으로 j값(0)을 합계값(1)으로 덮어씁니다. 따라서 여기서는 j값을 j+1로 덮어씁니다.따라서 각 반복 j 값은 1씩 증가합니다.

for(j = 0; j<=90; j+3){}

여기서 j+3은 이미 0인 j값을 의미하므로 3을 더하면 j+3의 합계가 3이 되지만 기존 j값을 덮어쓰지는 않습니다.따라서 JVM은 프로그래머에게 새로운 값을 계산하지만 변수(예: j)에 값을 할당하는 위치를 묻습니다.따라서 컴파일 시 오류 "invalid Assignment Operator"가 발생합니다.

만약 우리가 j값을 3씩 증가시키고 싶다면, 우리는 다음 방법 중 하나를 사용할 수 있습니다.

 for (int j=0; j<=90; j+=3)  --> here each iteration j value will be incremented by 3.
 for (int j=0; j<=90; j=j+3) --> here each iteration j value will be incremented by 3.  

구문 오류일 뿐이에요.교체만 하면 됩니다.j+3타고j=j+3또는j+=3.

for (let i = 0; i <= value; i+=n) { // increments by n
/*code statement*/
}

이 형식은 인덱스를 n씩 증가시키는 데 도움이 됩니다.

for (let i = 0; i <= value; i+=4) { // increments by 4
/*code statement*/
}

n = 4이면 4만큼 증가합니다.

루프문의 "증가" 부분은 인덱스 변수의 값을 변경해야 효과를 볼 수 있습니다."+j"의 긴 손 형태는 "j = j + 1"이다.따라서 다른 답변에서 설명한 바와 같이 올바른 증가 형식은 "j = j + 3"이며, 1씩 증가하는 것만큼 간단한 줄임말이 없습니다."j + 3"은 아시다시피 j가 실제로 바뀌는 것이 아니라 평가가 효과가 없는 표현입니다.

다음과 같은 for 루프가 있는 경우:

for(j = 0; j<=90; j++){}

이 루프에서는 j=j+1에 해당하는 postfix 연산자(use-then-change)를 의미하는 java language에 의해 제공되는 약어를 사용하고 있기 때문에 변경된 값이 초기화되어 다음 작업에 사용됩니다.

for(j = 0; j<=90; j+3){}

이 루프에서는 값을 3만 늘렸을 뿐 j변수로 초기화하지 않기 때문에 j의 값은 변경되지 않습니다.

언급URL : https://stackoverflow.com/questions/4581704/how-to-make-for-loops-in-java-increase-by-increments-other-than-1

반응형