Inserting a counter into a .each loop

I've got a loop that iterates through a string like so:

string.each_byte do |f|

  ...do something with f.chr

end

I would like to use a counter variable in this loop. I know I can add
'.with_index' but I need more control than that. I need a counter
variable in
this loop with state I can set when some condition is met and that will
persist through each iteration.
Does anyone know if this is possible? Thank you.

···

--
Posted via http://www.ruby-forum.com/.

string = "hello world"
x = 0
string.each_byte do |c|
        x+=1
end
puts x

···

--
Posted via http://www.ruby-forum.com/.

Brian Bush wrote:

I've got a loop that iterates through a string like so:

string.each_byte do |f|

  ...do something with f.chr

end

I would like to use a counter variable in this loop. I know I can add
'.with_index' but I need more control than that. I need a counter
variable in
this loop with state I can set when some condition is met and that will
persist through each iteration.
Does anyone know if this is possible? Thank you.

What's wrong with

x = 0
string.each_byte do |f|
    x += 1
end

···

--
RMagick: http://rmagick.rubyforge.org/

Tim Hunter wrote:

What's wrong with

x = 0
string.each_byte do |f|
    x += 1
end

Clearly my method is better here Tim.

···

--
Posted via http://www.ruby-forum.com/\.

Mk 27 wrote:

Tim Hunter wrote:

What's wrong with

x = 0
string.each_byte do |f|
    x += 1
end

Clearly my method is better here Tim.

Maybe somebody should do a benchmark. :slight_smile:

···

--
RMagick: http://rmagick.rubyforge.org/