> For the complete documentation index, see [llms.txt](https://v-vishwanath.gitbook.io/kiraak/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://v-vishwanath.gitbook.io/kiraak/fundamentals/loops.md).

# Loops

Programming me loop boletoh ek code block ‘n’ number of times repeat hota hai. Basically loops 2 tareeke ke bana sakte:

1. Jo hamareku maalum hai ki code ko kittey baar chalana hai
2. Jo hamareku kitte baar ka toh nai maalum lekin code ko chalate rehna hai, jab tak koi condition satisfy nai hojata

Ab pehle tareeke ke loop ko programming me **for loop** kehte hai, aur doosre ko **while loop**. Isko kuch iss tarah likhte hai:

### For Loop

Ye shuru hoga `ab` se, jiske baad ek variable ka naam daalna hai jo basically tumhara counter hoga. Ye kidhar se kidhar tak jaayega ye toh tumhe pata hai. Toh mil julkey tumhara for loop kuch iss tarah hota:

```
=> Ye code 1 se leke 10 tak numbers screen pe dikhayega
ab i ko 1 se 10 tak chalate hue
    screen pe i + '\n' dikha
    
```

Ab loops me bhi same rules apply hote. Agar ek ich line hai toh scope banane ki jaroorat nai hai!

Vaisa ich agar tumhe counter ka step badhana hai, yaani counter har baar kitte numberon ko skip karega ye bhi batana hai, toh vo bhi kar sakte:

```
=> Isme sirf 1 se 10 tak ke odd numbers dhikaye jaayenge
ab i ko 1 se 10 tak har baar 2 chodkar chalate hue {
    i % 3 1 hai => sahi
    screen pe i + '\n' dikha
}

```

{% hint style="info" %}
Ab ye dhyaan rakho ki counter (idhar `i`) jo ban raha hai loop me voh bhi sirf loop ke scope me ich hai. Ab scope banae ya ek line me loop likhe, woh ek line bhi loop ke scope ka ich hai. Toh ye`i` jo hai loop ke bahar exist nai karta.
{% endhint %}

### While Loop

Isme tumhara condition define ho jata, aur jab tak condition sahi hai tab tak loop chalta ich rehta:

```
x boletoh 10 hai

=> Ab ye loop 10 se 1 tak ke saare numbers dikhayega
jab tak x 0 nai hai tab tak {
    screen pe x + '\n' dikha
    abse x boletoh x - 1 hai
}

```

{% hint style="info" %}
Idhar dekhe toh loop ke scope me `x` defined nai hai, lekin bahar hai. Toh bolne ka matlab ye hai ki scope apne parent scope se bhi variables utha ke kaam kar sakta hai. Jaise pehle hi bataye the, tumhara pura program ek ich bada function / scope ke tarah hai, jisme chote chote scope / functions reh sakte. Ab chahe toh function ke andar doosre functions bhi likhle sakte, par itta deep jaane ki jaroorat nai hai!
{% endhint %}
