# For loops trouble

I am trying to translate a program I have in Java into ruby and having
trouble translating this for loop
for(int i = 0; a[i] < x;i++)
I tried this
for i in a[i]...x
but it produce some errors. Any help will be appreciated. Thank you.

···

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

numbers = *1..10
max = 6

numbers.each do |num|
break unless num < max
puts num
end

···

On Sat, Apr 16, 2011 at 1:27 PM, Daniel Johnson <zaldivar1841@gmail.com>wrote:

I am trying to translate a program I have in Java into ruby and having
trouble translating this for loop
for(int i = 0; a[i] < x;i++)
I tried this
for i in a[i]...x
but it produce some errors. Any help will be appreciated. Thank you.

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

Daniel Johnson wrote in post #993238:

I am trying to translate a program I have in Java into ruby and having
trouble translating this for loop
for(int i = 0; a[i] < x;i++)
I tried this
for i in a[i]...x
but it produce some errors. Any help will be appreciated. Thank you.

Ruby has a for-in loop:

a = [2, 4, 1, 9, 6]
x = 7

for num in a
break if num > x
puts num
end

But a for-in loop calls each(), so ruby programmers just use each()
directly:

a.each do |num|
break if num > x
puts num
end

···

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

A simple literal translation goes from this:

for (int i=0; a[i] < x; i++) { ... }

to this Ruby:

i = 0
while a[i] < x
...
i += 1
end

That Ruby is almost certainly not the best way to translate the Java
loop, but the best way really depends on what you are doing in the
loop.

···

On Sat, Apr 16, 2011 at 11:27 AM, Daniel Johnson <zaldivar1841@gmail.com> wrote:

I am trying to translate a program I have in Java into ruby and having
trouble translating this for loop
for(int i = 0; a[i] < x;i++)
I tried this
for i in a[i]...x
but it produce some errors. Any help will be appreciated. Thank you.

for(int i = 0; a[i] < x;i++)

there are many ways.
eg,

x

=> 6

a

=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a.take_while{|e| e<x}

=> [1, 2, 3, 4, 5]

a.each_with_index.take_while{|e| e<x}

=> [[1, 0], [2, 1], [3, 2], [4, 3], [5, 4]]

kind regards -botp

···

On Sun, Apr 17, 2011 at 2:27 AM, Daniel Johnson <zaldivar1841@gmail.com> wrote:

I guess, depending on your needs, you might want the index as well, in which
case

numbers.each do |num|

becomes

numbers.each_with_index do |num, index|

···

On Sat, Apr 16, 2011 at 1:36 PM, Josh Cheek <josh.cheek@gmail.com> wrote:

On Sat, Apr 16, 2011 at 1:27 PM, Daniel Johnson <zaldivar1841@gmail.com>wrote:

I am trying to translate a program I have in Java into ruby and having
trouble translating this for loop
for(int i = 0; a[i] < x;i++)
I tried this
for i in a[i]...x
but it produce some errors. Any help will be appreciated. Thank you.

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

numbers = *1..10
max = 6

numbers.each do |num|
break unless num < max
puts num
end