Skip to content

Latest commit

 

History

History
130 lines (96 loc) · 3.19 KB

loops.md

File metadata and controls

130 lines (96 loc) · 3.19 KB

Loops

Table of contents

Overview

Carbon provides loops using the while and for statements. Within a loop, the break and continue statements can be used for flow control.

Details

while

while statements loop for as long as the passed expression returns True. Syntax is:

while (boolean expression) {statements}

For example, this prints 0, 1, 2, then Done!:

var x: Int=0; while (x <3) { Print(x); ++x; } Print("Done!");

for

for statements support range-based looping, typically over containers. Syntax is:

for (var declarationinexpression) {statements}

For example, this prints all names in names:

for (var name: String in names) { Print(name); }

PrintNames() prints each String in the namesList in iteration order.

TODO: Add semantics discussion from #1885: ranged-based for for user-defined types.

break

The break statement immediately ends a while or for loop. Execution will resume at the end of the loop's scope. Syntax is:

break;

For example, this processes steps until a manual step is hit (if no manual step is hit, all steps are processed):

for (var step: Step in steps) { if (step.IsManual()) { Print("Reached manual step!"); break; } step.Process(); }

continue

The continue statement immediately goes to the next loop of a while or for. In a while, execution continues with the while expression. Syntax is:

continue;

For example, this prints all non-empty lines of a file, using continue to skip empty lines:

var f: File=OpenFile(path); while (!f.EOF()) { var line: String= f.ReadLine(); if (line.IsEmpty()) { continue; } Print(line); }

Alternatives considered

References

close