For...Next Statement
একটি নির্দিষ্ট সময় পর্যন্ত For...Next ব্লকের মধ্যে স্টেটমেন্ট প্রদান করে থাকে।
সিনট্যাক্স:
For counter=start To end [Step step]
স্টেটমেন্ট ব্লক
[Exit For]
স্টেটমেন্ট ব্লক
Next [counter]
ভেরিয়েবল:
গণনাকারী: লুপ গণনাকারীটি প্রাথমিকভাবে সমান চিহ্নের (শুরু) ডানে একটি মান বরাদ্দ করে থাকে। শুধুমাত্র সংখ্যাসূচক মান হলো বৈধ। End পাস না করা পর্যন্ত ভেরিয়েবলের স্তর অনুসারে লুপ গণনাকারী বৃদ্ধি অথবা হ্রাস পায়।
শুরু: সংখ্যাসূচক এক্সপ্রেশন যা লুপের শুরুতে প্রারম্ভিক মান নির্ধারণ করে থাকে।
সমাপ্ত: সংখ্যাসূচক ভেরিয়েবল যা লুপের শেষে সর্বশেষ মান নির্দারণ করে থাকে।
ধাপ: একটি মান নির্ধারণ করা হয় যা দ্বরা লুপ গণনাকারীর মান বৃদ্ধি অথবা হ্রাস করা যায়। যদি ধাপটি সুনির্দিষ্টভাবে উল্লেখ করা না হয়, তাহলে লুপ গণনাকারীর মান ১ বৃদ্ধি পায়। এই ক্ষেত্রে, সর্বশেষ মানটি অবশ্যই শুরুর মান থেকে বড় হতে হবে। আপনি যদি গণনাকারীর মান হ্রাস করতে চান, তাহলে সর্বশেষ মানটি অভশ্যই শুরুর মান থেকে ছোট হতে হবে, এবং ধাপের মান ঋনাত্মক হতে হবে।
প্যারামিটারে উল্লেখিত সময়ের জন্য লুপে For...Next লুপের সাহায্যে সকল স্টেটমেন্ট পুনরাবৃত্তি করে থাকে।
গণনা ভেরিয়েবল হ্রাস পাওয়ার ফলে, সর্বশেষ মান পাওয়া গিয়েছে কিনা তা LibreOffice বেসিকের মাধ্যমে পরীক্ষা করা হয়। গণনাকারী সর্বশেষ মানে পৌঁছানোর সাথে সাথে লুপটি স্বয়ংক্রিয়ভাবে সমাপ্ত হয়ে যায়।
For...Next স্টেটমেন্ট একত্রিত করা সম্ভব। Next স্টেটমেন্ট অনুসরণকারী একটি ভেরিয়েবল উল্লেখ না করেন, তাহলে Next স্বয়ংক্রিয়ভাবে সবচেয়ে সাম্প্রতিক For স্টেটমেন্টটি নির্দেশন করে থাকে।
যদি 0 এর বৃদ্ধি উল্লেখ করা হয়, তাহলে For এবং Next এর মধ্যে বিদ্যমান স্টেটমেন্ট ধারাবাহিকভাবে পুনরাবৃত্তি করা হয়।
গণনা ভেরিয়েবল গণনা করার সময়, LibreOffice বেসিক দ্বারা ওভারফ্লো অথবা আন্ডারফ্লো পরীক্ষা করা হয়। গণনাকারীটি End (ধাপের ধ্বনাত্মক মান) এর বেশি অথবা End (ধাপের ঋনাত্মক মান) এর ছোট হয় তাহলে লুপটি শেষ হয়ে যায়।
একটি লুপ থেকে শর্তহীনভাবে প্রস্থান করার জন্য Exit For স্টেটমেন্টটি ব্যবহার করুন। এই স্টেটমেন্টটি অবশ্যই For...Next লুপের মধ্যে থাকতে হবে। নিম্নানুসারে প্রস্থান শর্তটি পরূক্ষণের জন্য If...Then স্টেটমেন্টটি ব্যবহার করুন:
For...
statements
If condition = True Then Exit For
statements
পরবর্তী
নোট: নেস্টকৃত For...Next লুপে, যদি আপনি একটি লুপ থেকে Exit For এর সাহায্যে নিঃশর্তভাবে প্রস্থান করেন তাহলে শুধুমাত্র একটি লুপ থেকে প্রস্থান করবে।
উদাহরণ
নিচের উদাহরণটি দিউটি একত্রিত লুপ ব্যবহার করে একটি স্ট্রিং ১০টি এলিমেন্টের মধ্যে সাজায় ( sEntry() ), যা প্রথমে বিভিন্ন বিষয়বস্তু দ্বারা পূরণ করা হয়:
Sub ExampleSort
Dim sEntry(9) As String
Dim iCount As Integer
Dim iCount2 As Integer
Dim sTemp As String
sEntry(0) = "Jerry"
sEntry(1) = "Patty"
sEntry(2) = "Kurt"
sEntry(3) = "Thomas"
sEntry(4) = "Michael"
sEntry(5) = "David"
sEntry(6) = "Cathy"
sEntry(7) = "Susie"
sEntry(8) = "Edward"
sEntry(9) = "Christine"
For iCount = 0 To 9
For iCount2 = iCount + 1 To 9
If sEntry(iCount) > sEntry(iCount2) Then
sTemp = sEntry(iCount)
sEntry(iCount) = sEntry(iCount2)
sEntry(iCount2) = sTemp
End If
Next iCount2
Next iCount
For iCount = 0 To 9
Print sEntry(iCount)
Next iCount
End Sub