more docs
This commit is contained in:
parent
f40c28504d
commit
d1b6ec03f7
@ -600,6 +600,31 @@ The while and for loops can be followed by the else block, which is executed whe
|
|||||||
ends normally, without breaks. It allows override loop result value, for example,
|
ends normally, without breaks. It allows override loop result value, for example,
|
||||||
to not calculate it in every iteration. See for loop example just below.
|
to not calculate it in every iteration. See for loop example just below.
|
||||||
|
|
||||||
|
## Loop return value diagram
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
S((start)) --> Cond{check}
|
||||||
|
Cond--false, no else--->V((void))
|
||||||
|
Cond--true-->E(["last = loop_body()" ])
|
||||||
|
E--break value---->BV((value))
|
||||||
|
E--> Check2{check}
|
||||||
|
E--break---->V
|
||||||
|
Check2 --false-->E
|
||||||
|
Check2 --true, no else-->L((last))
|
||||||
|
Check2 --true, else-->Else(["last = else_clause()"])
|
||||||
|
Cond--false, else--->Else
|
||||||
|
Else --> L
|
||||||
|
```
|
||||||
|
|
||||||
|
So the returned value, as seen from diagram could be one of:
|
||||||
|
|
||||||
|
- `void`, if the loop was not executed, e.g. `condition` was initially false, and there was no `else` clause, or if the empty break was executed.
|
||||||
|
- value returned from `break value' statement
|
||||||
|
- value returned from the `else` clause, of the loop was not broken
|
||||||
|
- value returned from the last execution of loop body, if there was no `break` and no `else` clause.
|
||||||
|
|
||||||
|
|
||||||
## For loops
|
## For loops
|
||||||
|
|
||||||
For loop are intended to traverse collections, and all other objects that supports
|
For loop are intended to traverse collections, and all other objects that supports
|
||||||
|
Loading…
x
Reference in New Issue
Block a user