what's wrong in my loop ?

J

Josselin

I wrote the following loop some records ,

init an array db
get a record , loop on all records indexing by i
while record.start_at <= record.end_at
put in the db array [record.start_at, i]
end while
loop on records
end


but it seems that's Ruby doesn't like it .. what's wrong ? is theer any
way to write it better ?

db = []
record.each do |b|
aDate = b.start_at
i = 0
while aDate <= b.end_at
db << [ aDate, i ]
i++
aDate= aDate + i
end
end

jossss
 
S

Stephane Elie

Hi Josselin,

Tom is right about the "i++".

Also, it doesn't look like your pseudo-code matches your ruby code
functionality.

I'll give it a shot as what you may want to do, just a guess...

db = []
record.each do |b|
(b.end_at - b.start_at).times { |i| db << [b.start_at+i, i ] }
end
 
J

Josselin

Hi Josselin,

Tom is right about the "i++".

Also, it doesn't look like your pseudo-code matches your ruby code
functionality.

I'll give it a shot as what you may want to do, just a guess...

db = []
record.each do |b|
(b.end_at - b.start_at).times { |i| db << [b.start_at+i, i ] }
end

thansk Tom & Steph
newbie I am mixin any languages into it....
I actually need to remember first that Ruby is OO, so i.next makes more
sense compared to i++

joss
 
R

Rick DeNatale

Hi Josselin,

Tom is right about the "i++".

Also, it doesn't look like your pseudo-code matches your ruby code
functionality.

I'll give it a shot as what you may want to do, just a guess...

db = []
record.each do |b|
(b.end_at - b.start_at).times { |i| db << [b.start_at+i, i ] }
end

thansk Tom & Steph
newbie I am mixin any languages into it....
I actually need to remember first that Ruby is OO, so i.next makes more
sense compared to i++

The expression i++ isn't valid ruby.

Keep in mind that

i.next

all by itself has no effect on i:

i = 2
p i.next => 3
p i => 2

Don't confuse the variable i with the object it contains. The
expression i++ simply asks the object 2 for it's successor leaving it
unchanged.

i += 1

which is the same as:

i = i + 1

computes the value of i + 1 and assigns the result to the variable i.

you could also use

i = i.next
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,440
Members
44,832
Latest member
GlennSmall

Latest Threads

Top