Also, your program is weird. My guess is that you want to give the largest k such that x[1],..., x[k] are not equal to 0. If you want that, your program is wrong when x does not contain any 0.
The fact that if x does not contain any 0, your program return length(x) - 1 is very weird to me. On Wednesday, May 21, 2014 12:18:23 AM UTC+2, [email protected] wrote: > > This method is also a bit faster as you can check with @time. I guess that > it's because there is only one "if" per loop as opposed to 2 "if" per loop > in your design (Are we at the end of the array ? Is it a 0.0 ?). > > François > > On Wednesday, May 21, 2014 12:09:02 AM UTC+2, [email protected] wrote: >> >> Hi, >> >> I would do a while as the loop is a conditional loop : >> >> function test(x::Vector{Float64}) >> i = 1 >> while i <= length(x) && x[i] != 0.0 >> i += 1 >> end >> return i - 1 >> end >> >> or I would use a return inside the for loop even though I prefer to avoid >> a return in the middle of a function. Using a loop variable outside the >> loop looks ugly to me. But it's a matter of taste. >> >
