Some code :
WAS:>>>>>>>>>>>>>>>>>>>>>>>>>var i:Int = 0for (i=0;i<len;i++){    //do 
something}
....
for (i=0;i<len;i++){    if something is true    {
        break    }
}
use i
>>>>>>>>>>>>>>>>>>>>>>>
Now without C style forafter mechanically repair the code
I get this
var i:Int = 0for i in (0..<len){    //do something}
....
for i in (0..<len)
{    if something is true    {
        break    }
}
use i ??What is i now :)  !!!!

  

    On Wednesday, March 23, 2016 1:38 PM, Brent Royal-Gordon via 
swift-evolution <[email protected]> wrote:
 

 > 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
Architechies

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution


  
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to