مرکزی مواد پر جائیں
ماڈیول 2 · سبق 2 از 5کورس میں 7/50~10 min
ماڈیول اسباق (2/5)

کے لیے: واحد لوپ

Go میں ایک ہی لوپ کنسٹرکٹ ہے: for۔ نہیں while، نہیں۔ do-while، نہیں foreach (جو اگلے سبق میں اس کے ساتھ آتا ہے range)۔ ایک کلیدی لفظ تین شکلوں کی بدولت تمام صورتوں کا احاطہ کرتا ہے۔

for کی تین شکلیں

کلاسیکی تین شق کی شکل

سی/جاوا سے مماثل:

Go
for i := 0; i < 5; i++ {
    fmt.Println(i)
}

i کا دائرہ کار for تک محدود ہے۔ تین شقیں اختیاری ہیں (آپ کر سکتے ہیں۔ ان میں سے کسی کو چھوڑ دیں) لیکن ; باقی رہے گا اگر آپ درمیانی کو چھوڑ دیتے ہیں۔

"جبکہ" فارم: صرف شرط

گو میں، جبکہ صرف ایک for ہے جس میں ایک bool اظہار ہے:

Go
i := 0
for i < 5 {
    fmt.Println(i)
    i++
}

لامحدود شکل

شقوں کے بغیر، لوپ کبھی ختم نہیں ہوتا (جب تک break/return):

Go
for {
    if exitCondition() {
        break
    }
    doWork()
}

یہ ایونٹ ہینڈلنگ لوپس، سرورز، دوبارہ کوشش کرنے کی پالیسیوں کا نمونہ ہے۔

break، continue اور لیبلز

break سب سے اندرونی لوپ سے باہر نکلتا ہے، continue اگلی تکرار پر جاتا ہے:

Go
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
}

نیسٹڈ لوپس سے باہر نکلنے کے لیے لیبل ہیں (نادر لیکن مفید):

Go
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 نہیں لکھ سکتے: پوسٹ ایکسپریشن متعدد اسائنمنٹس کو قبول نہیں کرتا ہے۔ گو کا استعمال کریں۔ متعدد تفویض نحو:

Go
for i, j := 0, 10; i < j; i, j = i+1, j-1 {
    fmt.Println(i, j)
}

اس کے بجائے یہ کام کرتا ہے کیونکہ i, j = i+1, j-1 ایک واحد ہے۔ متعدد تفویض.

اسے آزمائیں

ورزش#go.m2.l2.e1
کوششیں: 0لوڈ ہو رہا ہے…

0 سے 4 تک کے نمبروں کو ایک کلاسک تین شق کے ساتھ پرنٹ کریں۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

`init کے لئے؛ cond پوسٹ { ... }` — یہاں init ہے `i := 0`۔

3 کوششوں کے بعد حل دستیاب ہے۔

ورزش#go.m2.l2.e2
کوششیں: 0لوڈ ہو رہا ہے…

1 سے 10 تک کے تمام نمبروں کو شامل کریں جس میں for کی 'while' فارم استعمال ہوتی ہے۔

ایڈیٹر لوڈ ہو رہا ہے…
اشارہ دکھائیں۔

'جبکہ' فارم: `کیلئے &lt;حالت&gt; { ... }`۔

3 کوششوں کے بعد حل دستیاب ہے۔

Quiz#go.m2.l2.e3
تیار

کون سی شکل گو میں لامحدود لوپ کی نمائندگی کرتی ہے؟

Go
// (a) for i := 0; i < 10; i++ { ... }
// (b) for cond { ... }
// (c) for { ... }
جواب کے اختیارات

Recap

  • ایک کلیدی لفظ for تین شکلوں کے ساتھ: کلاسک، جبکہ، لامحدود۔
  • break / continue اختیاری طور پر نیسٹڈ لوپس کے لیبل کے ساتھ۔
  • لیبل Name: سے پہلے for، تھوڑا استعمال کیا جاتا ہے۔
  • نہیں , بطور آپریٹر: ایک سے زیادہ اسائنمنٹ i, j = ..., ... استعمال کریں۔