اذهب إلى المحتوى

السؤال

نشر (معدل)

في الشيفرة البرمجية التالية:

 c = 0  
 items.each { |i|  
   puts i.to_s    
   # if c > 9 escape the each iteration early - and do not repeat  
   c++  
 }

أريد التكرار 10 مرات فقط وبعدها أغادر الحلقة، فبماذا أستبدل التعليق الموجودة في الشيفرة البرمجية؟ هل هنالك حل أفضل من الحل الذي وضعته؟

تم التعديل في بواسطة المبرمج العربي

Recommended Posts

  • 0
نشر

هنالك طرق عديدة في لغة روبي للخروج من حلقة تكرار each فيمكنك على سبيل المثال استخدام do و end في تعريف حلقة التكرار ومن ثم وضع شرط الخروج باستخدام break والجملة الشرطية if كما في المثال التالي:

c = 0  
items.each do |i|  
  puts i.to_s    
  break if c > 9
  c += 1
end

أو يمكنك اختصار السطور السابقة إلى التالي:

items.each_with_index do |i, c|  
  puts i.to_s    
  break if c > 9
end

أو يمكنك أيضا اختصارها إلى سطر واحد فقط وذلك عن طريق استخدام take حيث ستأخذ أول 10 عناصر فقط:

items.take(10).each { |i| puts i.to_s }

ملاحظة: لا يوجد عامل ++ في روبي ويمكنك كتابة c += 1 بدلا من ذلك.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...