2012-01-19 16 views
34

मैं रूबी के साथ नया हूं। रूबी में निम्नलिखित लूप लिखना सीखना चाहते हैं।रूबी में ऋणात्मक लूप को कैसे लिखना है (i = index; i> = 0; i -)

var index=25; 

for (i = index; i >= 0; i--) { 
    print i; 
} 
+0

नोट करें कि आपके सवाल (i = सूचकांक के लिए 'पढ़ना चाहिए; मैं > = 0; i -) ' – KevinDTimm

+5

यदि आप रूबी के साथ नए हैं, तो आपकी प्रोफ़ाइल का कहना है कि आपके पास आरओआर अनुभव का 5 साल क्यों है? –

+0

हाँ मार्क :), मैं –

उत्तर

9

इस प्रयास करें:

25.downto(0) { |i| puts i } 
24

एक ही रास्ता:

25.downto(0) do |i| 
    puts i 
end 
+0

अनुमान लगाते हैं कि आप श्रेणियां निकाल सकते हैं इस तरह इस्तेमाल नहीं किया जाएगा ;-) –

+0

हटाए जाने के बाद से यह किसी और का जवाब था। यह एक सीमा का उपयोग करने के लिए मेरे दिमाग को पार नहीं कर सका जब यह ठीक है 'डाउनटो' के लिए है। –

+0

उसके बारे में क्षमा करें। मैं जवाब से खुश था, लेकिन नाम याद रखने में असफल रहा :-) –

49

वहाँ रूबी में एक decrementing पाश प्रदर्शन करने के लिए कई तरीके हैं:

सबसे पहले जिस तरह से:

for i in (10).downto(0) 
    puts i 
end 

दूसरा तरीका:

(10).downto(0) do |i| 
    puts i 
end 

तीसरा रास्ता:

i=10; 
until i<0 
    puts i 
    i-=1 
end 
+3

1 तरीके में अपरिपक्व माता-पिता होते हैं, और यह बहुत मूर्ख नहीं है। दूसरे तरीके में बाहरी माता-पिता भी शामिल हैं, एक अनावश्यक 'प्रत्येक' है, और इसमें अनावश्यक उद्धरण और परिवर्तनीय इंटरपोलेशन है। तीसरा रास्ता बस टूटा हुआ है। –

+0

@MarkThomas: मुझे लगता है कि बाहरी कोष्ठक इसे मेरे जैसे नए रूबी उपयोगकर्ताओं के लिए कम अजीब लगते हैं। जावास्क्रिप्ट में, वही बात संभव है, लेकिन आपको दो बिंदुओं (रेडिक्स पॉइंट और प्रॉपर्टी एक्सेसर) का उपयोग करने की आवश्यकता है: '65536..toExponential()'। यह संपत्ति पहुंच की इजाजत देने का एक अजीब तरीका है, इसलिए मुझे लगता है कि कम से कम उपयोग करना बहुत आम नहीं है या यहां तक ​​कि अन्य भाषाओं में भी पता है जहां एक डॉट का उपयोग करके किसी संख्या के गुणों को सीधे एक्सेस करना संभव है। –

12

downto ठीक है, लेकिन वहाँ भी अधिक सामान्य step है।

25.step(0, -1){|i| puts i} 
1

बस मामले में आप पहले से ही एक सीमा के साथ काम कर रहे हैं:

rng = 0..6 
rng.reverse_each { |i| p i } 
2

यहाँ एक सरल एक है:

(0..25).reverse_each { |i| print i } 
+0

काम नहीं करता है, श्रेणियां नीचे नहीं जाती हैं। – steenslag

+0

@steenslag लगता है कि आप सही हैं। फिक्सिंग। – edgerunner

संबंधित मुद्दे