수색…


통사론

  • for (선언, 조건, 반복) {}
  • while (조건) {}
  • do {} while (조건) while

비고

General Remark 일어날 일이 생길 때까지 기다리는 루프를 만들려한다면 여기를 잘못 읽었을 것입니다. setup () 이후의 모든 코드는 loop ()라는 메서드에서 실행된다는 점을 기억하십시오. 그래서 당신이 무엇인가를 기다릴 필요가 있다면, 아무것도하지 않거나 다른 독립적 인 것들만하는 것이 가장 쉽고 다음에 대기 상태를 확인하기 위해 다시 돌아 오는 것이 가장 쉽습니다.

do { } while(condition) 은 첫 번째 반복 이후까지 조건문을 평가하지 않습니다. 조건문에 부작용이있는 경우 계속주의해야합니다.

동안

while 루프는 조건을 평가하고, true 내부에서 코드를 실행하고 다시 시작합니다. 즉, 조건이 true 평가되는 한 while 루프는 계속해서 실행됩니다.


이 루프는 변수 num 1을 더할 때마다 100 번 실행됩니다.

int num = 0;
while (num < 100) {
    // do something
    num++;
}

위의 루프는 for 루프와 동일합니다.

for (int i = 0; i < 100; i++) {
    // do something
}

이 루프는 영원히 실행됩니다.

while (true) {
    // do something
}

위의 루프는 for 루프와 동일합니다.

for (;;) {
    // do something
}

에 대한

for 루프는 while 루프를 사용하여 더 많은 행에서 수행 할 수있는 매우 일반적인 루프 패턴에 대한 간단한 구문입니다.

다음은 for 루프의 일반적인 예이며 100 회 실행 한 다음 중지합니다.

for (int i = 0; i < 100; i++) {
    // do something
}

이는 while 루프와 동일합니다.

int num = 0;
while (num < 100) {
    // do something
    num++;
}

조건을 생략하여 무한 루프를 만들 수 있습니다.

for (;;) {
    // do something
}

이는 while 루프와 동일합니다.

while (true) {
    // do something
}

할 ... 동안

do while 루프는 동일하다 while 이 한 번 이상 실행 보장 이외에는 루프.

다음 루프는 100 번 실행됩니다.

int i = 0;
do {
    i++;
} while (i < 100);

비슷한 루프이지만 조건이 다르면 1 번 실행됩니다.

int i = 0;
do {
    i++;
} while (i < 0);

위의 루프가 단지 while 루프 인 경우, 조건은 첫 번째 반복 전에 false 평가 될 것이므로 0 번 실행합니다. 그러나 do while 루프이므로 한 번 실행 한 다음 다시 실행하기 전에 조건을 확인합니다.

흐름 제어

루프의 흐름을 중단하거나 변경하는 몇 가지 방법이 있습니다.

break; 현재 루프를 종료하고 해당 루프 내에서 더 이상 행을 실행하지 않습니다.

continue; 루프의 현재 반복 내에서 더 이상 코드를 실행하지 않지만 루프에 남아 있습니다.

다음 루프는 break 문으로 인해 1000 대신에 101 번 (i = 0, 1, ..., 100)을 실행합니다.

for (int i = 0; i < 1000; i++) {
    // execute this repeatedly with i = 0, 1, 2, ...
    if (i >= 100) {
        break;
    }
}

다음 루프는 continue 문 때문에 j 값이 100 대신 50이됩니다.

int j=0;
for (int i = 0; i < 100; i++) {
    if (i % 2 == 0) { // if `i` is even
        continue;
    }
    j++;
}
// j has the value 50 now.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow