Sök…


Syntax

  • för (deklaration, villkor, iteration) {}
  • medan (villkor) {}
  • gör {} medan (villkor)

Anmärkningar

General Remark Om du tänker skapa en slinga för att vänta på att något ska hända, är du förmodligen på fel väg här. Kom ihåg snarare att all kod efter installationen () körs från en metod som heter loop (). Så om du behöver vänta på något, är det lättast att inte göra någonting (eller bara andra oberoende saker) och komma tillbaka för att kontrollera om väntetillståndet nästa gång.

do { } while(condition) kommer inte att utvärdera tillståndsuttalandet förrän efter den första iterationen. Detta är viktigt att komma ihåg om tillståndsdeklarationen har biverkningar.

Medan

En while slinga kommer att utvärdera dess tillstånd, och om det är true kommer den att köra inuti och börja om igen. Det är, så länge dess tillstånd utvärderas till true , kommer while loopen att köras om och om igen.


Denna slinga körs 100 gånger, varje gång läggs 1 till variabeln num :

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

Ovanstående slinga motsvarar en for loop:

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

Denna slinga kommer att köras för alltid:

while (true) {
    // do something
}

Ovanstående slinga motsvarar en for loop:

for (;;) {
    // do something
}

För

for slingor är förenklade syntax för en mycket vanlig slingmönster, som kan åstadkommas på flera linjer med en while slinga.

Följande är ett vanligt exempel på en for loop, som kommer att köras 100 gånger och sedan stoppa.

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

Detta är ekvivalent med en while loop:

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

Du kan skapa en ändlös slinga genom att utelämna villkoret.

for (;;) {
    // do something
}

Detta är ekvivalent med en while loop:

while (true) {
    // do something
}

Göra medan

En do while loop är densamma som en while loop, förutom att den garanteras att köra minst en gång.

Följande slinga körs 100 gånger.

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

En liknande slinga, men med ett annat tillstånd, kör en gång.

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

Om ovanstående slingan var bara en while slinga skulle köra 0 gånger, eftersom villkoret skulle utvärderas till false innan den första iteration. Men eftersom det är en do while loop kör den en gång och kontrollerar sedan dess tillstånd innan den körs igen.

Flödeskontroll

Det finns några sätt att bryta eller ändra en slingas flöde.

break; kommer att lämna den aktuella slingan och kommer inte att köra fler rader inom den slingan.

continue; kommer inte att köra mer kod inom den aktuella iterationen av slingan, men kommer att förbli i slingan.

Följande slinga kommer att exekvera 101 gånger (i = 0, 1, ..., 100) i stället för 1000, på grund av break uttalande:

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

Följande slinga kommer att resultera i att j värdet blir 50 istället för 100 på grund av continue :

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow