> 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/control-flow.md).

# Control Flow

Har baar koi bhi program line by line execute hota. Lekin bahut baar humaareko aisa bhi hona rehta ki beech me rok ke doosre lines execute karna pad sakta hai. Jaisa ab ek loop chalra, aur agar koi condition satisfy ho gaya toh loop ko aadhe me rok ke baaki ka code chala dena padta.

Aisa karne ke waaste apan 3 control flow statements ka use karte:

### Khatam / Dega

Ye ek function jo execution me hai usko rokne ke waaste hai. Ab dekhe toh vaisa pura program ich ek bada function hai, toh usko rukaane ke waaste humloga kahin pe bhi “khatam” daal diye toh program sirf vaha tak ich chalta.

Aur agar function se kuch value return bhi karna hai, toh “dega” ka istemaal hota:

```
=> function jo koi value return nai deta
countDown function n lega aur {
    screen pe n + '\n' dikha
    
    agar n 0 hai toh {
        screen pe "Khatam!" dikha
        khatam => Yahan function ka execution ruk jaayega
    }
    
    countDown ko n - 1 deke chala
}


=> function jo value return deta
sumOfNNumbers function n lega aur {
    agar n 1 hai toh 1 dega
    nai toh {
        baakiKaSum boletoh sumOfNNumbers ko n - 1 deke chala
        n + baakiKaSum dega
    }
}

```

{% hint style="info" %}
Idhar do function jo likhe hai ye dono ke dono **recursion** pe ich chalta hai. Ab yahi tum loop, conditional ya hona hai toh anonymous scope se bhi chala sakte.

Ab `khatam` ko toh tum code me kahin pe bhi daal sakte, par `dega` ko sirf functions (ya **anonnymous scope**) ke andar se hi chala sakte!
{% endhint %}

### Chalde

Chalde ko loops ke andar use karte. Jab loop me chalde aata, toh loop ka baaki ka hissa execute nai hota. Aisa sochna ki chalde ke baad kuch bhi nai hai. Toh loop seedha next repetition pe chale jaata.

{% code overflow="wrap" %}

```
==>
socho aisa loop likhna hai jo 2 ke alawa saare numbers dikha raha hai. Ab isi cheez ko tum conditional statement se bhi likh sakte ho, lekin example ke waaste idhar ham chalde ka istemaal karenge
<==

ab i ko 1 se 10 tak chalate hue {
    agar i 2 hai toh chalde
    screen pe i + '\n' dikha
}
    
```

{% endcode %}

### Cutle

Cutle ko bhi Chalde jaisa ich loop me likhte. Bas itta farak hai, ki cutle aate hi code loop se seedha bahar aajata.

{% code overflow="wrap" %}

```
==>
Iss example me loop tab tak chalega jab tak input -1 nai hojata. Jaise hi -1 hoga execution loop ke bahar chala jaayega. Ab cutle ka istemaal mostly aise haalaton me karte jahan hame maalum nai ki loop ko kitte baar chalana hai, aur loop tabhi khatam hoga jab andar ka operation me koi condition satisfy hoga, naaki baahar ka
<==

jab tak sahi hai tab tak { => Ye loop infinite loop hai. Chalta ich jaayega!
    num me input aayega
    agar num -1 hai toh cutle
    
    screen pe num + '\n' dikha
}

screen pe "Loop khatam" dikha

```

{% endcode %}

{% hint style="info" %}
Vaise toh loop me cutle or chalde use kam se kam karna chahiye, kyunki tum logon ko proper control nai rehta ki loop kab rukega, lekin kabhi kabhi karna hi padta hai!&#x20;
{% endhint %}
