মডিউল পাঠ (2/5)
জন্য: একমাত্র লুপ
Go এর একটি লুপ গঠন আছে: for। না while, না
do-while, না foreach (যা এর সাথে পরবর্তী পাঠে আসে
range)। একটি একক কীওয়ার্ড তিনটি ফর্মের জন্য ধন্যবাদ সমস্ত ক্ষেত্রে কভার করে।
for এর তিনটি রূপ
ক্লাসিক থ্রি-ক্লজ ফর্ম
C/Java এর সাথে অভিন্ন:
for i := 0; i < 5; i++ {
fmt.Println(i)
}i এর সুযোগ for এর মধ্যে সীমাবদ্ধ। তিনটি ধারা ঐচ্ছিক (আপনি করতে পারেন
যেকোন একটি বাদ দিন) কিন্তু ; থেকে যাবে যদি আপনি একটি মধ্যবর্তী বাদ দেন।
"যখন" ফর্ম: শুধুমাত্র শর্ত
গো-তে, শুধুমাত্র একটি for একটি একক bool অভিব্যক্তি সহ:
i := 0
for i < 5 {
fmt.Println(i)
i++
}অসীম রূপ
ধারা ছাড়া, লুপ কখনই শেষ হয় না (যদি না break/return):
for {
if exitCondition() {
break
}
doWork()
}এটি ইভেন্ট হ্যান্ডলিং লুপ, সার্ভার, পুনরায় চেষ্টা করার নীতিগুলির প্যাটার্ন।
break, continue এবং লেবেল
break ভেতরের লুপ থেকে প্রস্থান করে, continue পরবর্তী পুনরাবৃত্তিতে চলে যায়:
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // salta i pari
}
if i > 7 {
break // ferma il ciclo
}
fmt.Println(i) // 1 3 5 7
}নেস্টেড লুপ থেকে প্রস্থান করতে লেবেল (বিরল কিন্তু দরকারী):
Esterno:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i*j == 4 {
break Esterno // esce da entrambi
}
}
}C-এর মতো কোনো , অপারেটর নেই
গো-তে আপনি for i, j := 0, 10; i < j; i, j = i+1, j-1 লিখতে পারবেন না:
পোস্ট এক্সপ্রেশন একাধিক অ্যাসাইনমেন্ট গ্রহণ করে না। গো ব্যবহার করুন
একাধিক অ্যাসাইনমেন্ট সিনট্যাক্স:
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
fmt.Println(i, j)
}এটি পরিবর্তে কাজ করে কারণ i, j = i+1, j-1 একটি একক
একাধিক অ্যাসাইনমেন্ট।
চেষ্টা করে দেখুন
0 থেকে 4 পর্যন্ত সংখ্যাগুলিকে একটি ক্লাসিক থ্রি-ক্লজ সহ প্রিন্ট করুন।
ইঙ্গিত দেখান
`init এর জন্য; cond; পোস্ট { ... }` — এখানে init হল `i := 0`।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
for এর 'while' ফর্মটি ব্যবহার করে 1 থেকে 10 পর্যন্ত মোট সমস্ত সংখ্যার যোগফল।
ইঙ্গিত দেখান
'যখন' ফর্ম: `< শর্ত> { ... }` এর জন্য।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
কোন ফর্ম গো-তে একটি অসীম লুপের প্রতিনিধিত্ব করে?
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }রিক্যাপ
- একটি একক কীওয়ার্ড
forতিনটি ফর্ম সহ: ক্লাসিক, যখন, অসীম৷ break/continueঐচ্ছিকভাবে নেস্টেড লুপের জন্য একটি লেবেল সহ৷- লেবেল
Name:এর আগেfor, অল্প ব্যবহার করা হয়েছে। - না
,একজন অপারেটর হিসেবে: একাধিক অ্যাসাইনমেন্ট ব্যবহার করুনi, j = ..., ...।