[swift-evolution] A (better) Swift Equivalent For The Classical For-Loop With Numeric Scalars

Brent Royal-Gordon brent at architechies.com
Wed Mar 23 06:38:44 CDT 2016

> One advantage of the old C style for loop is that everything to do with loop control is in one place, usually on one line. There is currently no way of doing that for the (quite common) use case of iterating through a sequence until a particular condition (other than the end of the sequence) is true except by using a break. 

If you can stand using method chains, I believe that role would be filled by the `takeWhile(_:)` method that Kevin Ballard (IIRC) wants to add to Sequence. (Although `takeWhile(_:)` would be greedy by default.)

But honestly, other than distaste, I don't see much of a practical issue with putting an `if` or `guard` on the first line with a `break` in it. That still clusters the iteration logic at the top of the loop, even if it's not quite in a single statement.

Brent Royal-Gordon

More information about the swift-evolution mailing list