# Confusion with while loop

**URL:** <https://www.ruby-forum.com/t/confusion-with-while-loop/110800>\
**Category:** Ruby\
**Created:** [July 31, 2007, 2:41am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800 "2007-07-31T02:41:16Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michael\_WSRyder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/53a042/32.png) [@Michael\_WSRyder](https://www.ruby-forum.com/u/Michael_WSRyder)\
**Post date:** [July 31, 2007, 2:41am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800/1 "2007-07-31T02:41:16Z")

</div>

I am trying to create a method that would allow one to skip x number of  
a character then change the next y number of a character. While trying  
to create a simple routine I ran into two “weird” problems. The code  
follows:

a = “1 2 1 3 1 4 1 5 1 6 1 7”  
ns = 2, nc = 2

i = 0, il = a.length, xs = 0, xc = 0  
while xs \< ns  
if a[i, 1] == “1”  
xs += 1  
end  
i += 1  
end

puts a[i, -1]

In this incarnation trying to run the code returns the following error:  
testing.rb:5:in `<': comparison of Fixnum with Array failed (ArgumentError). If I change ns in the while statement to 2 I get the following error: testing.rb:6:in`[]’: can’t convert Array into Integer  
(TypeError).

I can’t see why statement 5 (the while statement) thinks that ns is an  
array when it is clearly defined as an integer. I also can’t figure out  
why I get the error message in the following line when I have used that  
code in other places with no problems. I must be missing something but  
I can’t figure out what it is.

---

<div class="post-metadata">

**Author:** ![Michael\_WSRyder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/53a042/32.png) [@Michael\_WSRyder](https://www.ruby-forum.com/u/Michael_WSRyder)\
**Post date:** [July 31, 2007, 2:47am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800/2 "2007-07-31T02:47:16Z")

</div>

Michael W. Ryder wrote:

> if a[i, 1] == “1”  
> following error: testing.rb:6:in `[]’: can’t convert Array into Integer  
> (TypeError).
> 
> I can’t see why statement 5 (the while statement) thinks that ns is an  
> array when it is clearly defined as an integer.  
> It’s not, though - run just this line, and check the values of ns and  
> nc:

ns = 2, nc = 2

I think you want:

ns, nc = [2,2]

---

<div class="post-metadata">

**Author:** ![Michael\_WSRyder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/53a042/32.png) [@Michael\_WSRyder](https://www.ruby-forum.com/u/Michael_WSRyder)\
**Post date:** [July 31, 2007, 3:06am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800/3 "2007-07-31T03:06:17Z")

</div>

Alex Y. wrote:

> > while xs \< ns  
> > (ArgumentError). If I change ns in the while statement to 2 I get the
> 
> ns, nc = [2,2]

Or ns =2; nc =2. I knew it had to be something simple. Thats the  
problem with programming in multiple languages at the same time, they  
each do the same things slightly differently. Thanks for pointing that  
out.

---

<div class="post-metadata">

**Author:** ![Michael\_WSRyder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/53a042/32.png) [@Michael\_WSRyder](https://www.ruby-forum.com/u/Michael_WSRyder)\
**Post date:** [July 31, 2007, 10:20am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800/4 "2007-07-31T10:20:58Z")

</div>

2007/7/31, Michael W. Ryder [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > > i = 0, il = a.length, xs = 0, xc = 0  
> > > error: testing.rb:5:in `\<': comparison of Fixnum with Array failed  
> > > I think you want:
> > 
> > ns, nc = [2,2]
> 
> Or ns =2; nc =2. I knew it had to be something simple. Thats the  
> problem with programming in multiple languages at the same time, they  
> each do the same things slightly differently. Thanks for pointing that out.

These are options, too:

ns, nc = 2, 2  
ns = nc = 2

Kind regards

robert

---

<div class="post-metadata">

**Author:** ![Michael\_WSRyder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/53a042/32.png) [@Michael\_WSRyder](https://www.ruby-forum.com/u/Michael_WSRyder)\
**Post date:** [July 31, 2007, 10:32am UTC](https://www.ruby-forum.com/t/confusion-with-while-loop/110800/5 "2007-07-31T10:32:01Z")

</div>

Robert K. wrote:

> > > > In this incarnation trying to run the code returns the following
> 
> ns, nc = 2, 2  
> Maybe this is where I got confused. I remember seeing commas between  
> variables, just forgot the way they had to be entered. Thanks for  
> pointing this out.
