# else স্টেটমেন্ট

আগের চ্যাপ্টারে আমরা দেখেছি কিভাবে একটি if কন্ডিশন সত্য হলে তার আওতাভুক্ত কোড ব্লকটি রান হয়। else বস্তুত if এর সাথেই সম্পর্কিত। অর্থাৎ, যদি উল্লেখিত if কন্ডিশনটি সত্য না হয় তাহলে else এর আওতাভুক্ত কোডব্লক রান বা এক্সিকিউট হয়।

```python
x = 4
if x == 5:
    print("Its 5")
else:
    print("Its not 5")
```

আউটপুট,

```python
Its not 5
```

**if else চেইন**\
একটি if স্কোপের মধ্যে যেহেতু যেকোনো কোডই থাকতে পারে সেহেতু এর মধ্যে আরও এক বা একাধিক if বা else লজিক অবস্থান করতেই পারে। যেমন নিচের উদাহরণে, প্রথমেই একটি if দিয়ে চেক করা হচ্ছে যে `num` এর ভ্যালু `5` কিনা। যদি না হয় তাহলে প্রোগ্রাম কন্ট্রোল আরেকটি ধাপে চলে যাচ্ছে যেখানে আরও একটি if দিয়ে চেক করা হচ্ছে `num` এর ভ্যালু `11` কিনা। নাহলে তার সাথে সম্পর্কিত একটি else ব্লকে চলে যাচ্ছে এবং তার মধ্যে থাকা একটি if দিয়ে আবারো চেক করা হচ্ছে `num` এর মান `7` কিনা এবং এই কন্ডিশনটি সত্য হওয়ায় স্ক্রিনে প্রিন্ট হচ্ছে `Number is 7`

```python
num = 7
if num == 5:
    print("Number is 5")
else:
    if num == 11:
        print("Number is 11")
    else:
        if num == 7:
            print("Number is 7")
        else:
            print("Number isn't 5, 11 or 7")
```

আউটপুট,

```python
Number is 7
```

মজার ব্যাপার হচ্ছে এরকম if else if এর চেইনকে একটু সংক্ষেপে `elif` দিয়েও লেখা যায়। উপরের প্রোগ্রামটি নিচের মত করেও লেখা যায়,

```python
num = 7
if num == 5:
    print("Number is 5")
elif num == 11:
    print("Number is 11")
elif num == 7:
    print("Number is 7")
else:
    print("Number isn't 5, 11 or 7")
```

আউটপুট,

```python
Number is 7
```

**টারনারি অপারেটর**\
টারনারি শব্দের স্বাভাবিক অর্থ তিন সম্বন্ধীয়। এর নাম শুনেই বোঝা যাচ্ছে এই অপারেটরটি তিনটি আর্গুমেন্ট নিয়ে কাজ করে। ওদিকে, আমরা ইতোমধ্যে জেনেছি if এবং else সম্পর্কে। তো, এই if, else এবং সাথে একটি ভ্যালু এই তিনটি বিষয়কে নিয়ে খুব সহজে কন্ডিশনাল এক্সপ্রেশন লেখা যায় টারনারি অপারেটর এর কনসেপ্ট ইমপ্লিমেন্ট করে।

উদাহরণ,

```python
a = 100
b = 200 if (a >= 100 and a < 200) else 300
print(b)
```

ধরে নেই, প্রথমেই `a` এর মান 100 অ্যাসাইন করা হয়েছে। এরপর `b` এর জন্য একটি মান অ্যাসাইন করতে চাচ্ছি। সেটা হতে পারে 200 অথবা 300. তো, আসলে কোনটা হবে সেটি নির্ধারণ করার জন্য একটি কন্ডিশন বসিয়েছি।\
কন্ডিশনটি হচ্ছে - `if (a >= 100 and a < 200)` অর্থাৎ `a` এর মান ১০০ থেকে বড় বা সমান এবং ২০০ থেকে ছোট হলে এই কন্ডিশনটি সত্য হবে আর তখন `b` এর মান হিসেবে 200 অ্যাসাইন হবে। কন্ডিশনটি মিথ্যা হলে `b` এর মধ্যে 300 ঢুকবে। ঠিক এগুলোই এক লাইনে লেখা হয়েছে যা বস্তুত টারনারি অপারেটর এর একটা প্রয়োগ।

আউটপুট,

```python
200
```

আরেকটি উদাহরণ দেখি,

```python
status  = 1
msg = "Logout" if status == 1 else "Login"
print(msg)
```

আউটপুট,

```python
Logout
```

**else এর আরও ব্যবহার**\
শুধুমাত্র `if` এর সাথে ব্যবহার বাদেও `else` কে ব্যবহার করা যায় `for` এবং `while` লুপের সাথেও। উদাহরণ সরূপ, যখন কোন ফর লুপের কাজ স্বাভাবিক ভাবে শেষ হয় তখন এর সাথে যুক্ত `else` ব্লকের কোড এক্সিকিউট হয়। নিচের উদাহরণটি দেখি,

```python
for i in range(10):
    print(i)
else:
    print("Done")
```

আউটপুট,

```python
0
1
2
3
4
5
6
7
8
9
Done
```

> সংকলন - [নুহিল মেহেদী](https://nuhil.net)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://python.howtocode.dev/control-structure/else.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
