Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > for loop

Reply
Thread Tools

for loop

 
 
Martin Durai
Guest
Posts: n/a
 
      11-21-2007
Consider the following for loop in 'C' or 'c++' or 'java'

for (i=namespaceEnd - 1; i >= 0; i--)

Please help me with code to do the same functionality in ruby
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Carl
Guest
Posts: n/a
 
      11-21-2007
Martin Durai <(E-Mail Removed)> writes:

> Consider the following for loop in 'C' or 'c++' or 'java'
>
> for (i=namespaceEnd - 1; i >= 0; i--)
>
> Please help me with code to do the same functionality in ruby
> --
> Posted via http://www.ruby-forum.com/.


How about this:

(namespace_end - 1).downto(0) { |x| puts x }

Hope that helps,
Carl.
 
Reply With Quote
 
 
 
 
Martin Durai
Guest
Posts: n/a
 
      11-21-2007
Thank you carl, iam very new to this language

sorry carl could you help with this code fully

for( int i = namespaceEnd -1; i >= 0; i--) {
if( prefix.equals( namespacePrefix[ i ] ) ) {
return namespaceUri[ i ];
}


thank you in advance

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

 
Reply With Quote
 
Todd Burch
Guest
Posts: n/a
 
      11-21-2007
Martin Durai wrote:
> Thank you carl, iam very new to this language
>
> sorry carl could you help with this code fully
>
> for( int i = namespaceEnd -1; i >= 0; i--) {
> if( prefix.equals( namespacePrefix[ i ] ) ) {
> return namespaceUri[ i ];
> }
>
>
> thank you in advance


(namespace_end - 1).downto(0) { |x|
return namespaceUri[x] if prefix==namespacePrefix[x] }

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

 
Reply With Quote
 
Carl
Guest
Posts: n/a
 
      11-21-2007
Martin Durai <(E-Mail Removed)> writes:

> Thank you carl, iam very new to this language
>
> sorry carl could you help with this code fully
>
> for( int i = namespaceEnd -1; i >= 0; i--) {
> if( prefix.equals( namespacePrefix[ i ] ) ) {
> return namespaceUri[ i ];
> }
>
>
> thank you in advance
>


I suspect you're looking for the element in the namespaceUri
array which is at the position determined by looking up the
position of 'prefix' in the namespacePrefix array (how very
unsettling). Assuming namespaceEnd is actually the count of
elements in the namespacePrefix array, would this work?

your_value = (i = namespace_prefix.index(prefix)) ?
namespace_uri[i] :
nil

Where 'your_value' will now contain the namespace_uri value,
or nil if it was not found in namespace_prefix

If i've misunderstood your question, post back with the values
of prefix, namespacePrefix, namespaceUri and namespaceEnd, and
what you expect to get out of it and I'll see if I can't help.
 
Reply With Quote
 
Carl
Guest
Posts: n/a
 
      11-21-2007
Todd Burch <(E-Mail Removed)> writes:

> Martin Durai wrote:
>> Thank you carl, iam very new to this language
>>
>> sorry carl could you help with this code fully
>>
>> for( int i = namespaceEnd -1; i >= 0; i--) {
>> if( prefix.equals( namespacePrefix[ i ] ) ) {
>> return namespaceUri[ i ];
>> }
>>
>>
>> thank you in advance

>
> (namespace_end - 1).downto(0) { |x|
> return namespaceUri[x] if prefix==namespacePrefix[x] }
>
> Todd


I'm getting a 'LocalJumpError: unexpected return' error when
I try to return from within a downto block, is this supported
in your version?

Carl.
 
Reply With Quote
 
Lloyd Linklater
Guest
Posts: n/a
 
      11-21-2007
Martin Durai wrote:
> Consider the following for loop in 'C' or 'c++' or 'java'
>
> for (i=namespaceEnd - 1; i >= 0; i--)
>
> Please help me with code to do the same functionality in ruby


ruby does not really have a for loop as such but there are various ways
to get the job done. You saw the upto approach. Here is another:


namespaceEnd.times do
# your code in here
end

now, this works for 0..namespace - 1 automatically. If you need to run
in reverse, can use the downto or a calculation.

namespaceEnd.times do |my_var|
some_array[namespaceEnd - my_var] = some_val
end

but that is clunky. If you are iterating through an array you can use
the each loop:

my_arr = ["aaa", "bbb", "ccc", "ddd"]
my_arr.each_with_index {|str, idx| puts "#{idx}. #{str}"}

=>
0. aaa
1. bbb
2. ccc
3. ddd

If you want only the values, use my_arr.each
If you want only the index position, use my_arr.each_index

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

 
Reply With Quote
 
Paul McMahon
Guest
Posts: n/a
 
      11-21-2007
On Wed, 21 Nov 2007 13:39:58 +0900, Martin Durai <(E-Mail Removed)=
> =


wrote:

> Thank you carl, iam very new to this language
>
> sorry carl could you help with this code fully
>
> for( int i =3D namespaceEnd -1; i >=3D 0; i--) {
> if( prefix.equals( namespacePrefix[ i ] ) ) {
> return namespaceUri[ i ];
> }
>
>
> thank you in advance
>


You might consider using an array of namespace objects instead of parall=
el =

arrays

class Namespace
attr_reader refix, :uri
def initialize(prefix, uri)
@prefix =3D prefix
@uri =3D uri
end
end

namespaces =3D [ Namespace.new("prefix", "uri"), ...]

then your code becomes something like:

matching_namespace =3D namespaces.find {|namespace| namespace.prefix =3D=
=3D =

prefix)
return matching_namespace ? matching_namespace.uri : nil

 
Reply With Quote
 
Carl
Guest
Posts: n/a
 
      11-21-2007
Paul McMahon <(E-Mail Removed)> writes:
>
> You might consider using an array of namespace objects instead of parallel
> arrays
>
> class Namespace
> attr_reader refix, :uri
> def initialize(prefix, uri)
> @prefix = prefix
> @uri = uri
> end
> end
>
> namespaces = [ Namespace.new("prefix", "uri"), ...]
>
> then your code becomes something like:
>
> matching_namespace = namespaces.find {|namespace| namespace.prefix ==
> prefix)
> return matching_namespace ? matching_namespace.uri : nil


Good point.
I suspect in this case a plain old Hash might do wonders to simplify
the problem...

Carl.
 
Reply With Quote
 
Martin Durai
Guest
Posts: n/a
 
      11-21-2007
Sorry the code is running well in my system. I didnt got any error. I
have checked the code with my applications.

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

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Triple nested loop python (While loop insde of for loop inside ofwhile loop) Isaac Won Python 9 03-04-2013 10:08 AM
Getting a loop to activate a loop above it Byte Python 4 03-24-2006 03:04 AM
Condition outside loop or separate loop for different condition? - Java 12 06-15-2005 08:50 AM
while loop in a while loop Steven Java 5 03-30-2005 09:19 PM
Loop the loop... =?Utf-8?B?VGltOjouLg==?= ASP .Net 2 02-16-2005 12:21 PM



Advertisments