পাইথন while True

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 03 মে, 2024


'while True' ব্যবহার করে লুপ ডিফাইন করলে সেটি ইনফাইনাইট (অসীম) লুপে পরিণত হয়। যদি আমরা এটি বন্ধ করতে চাই তাহলে 'break' স্টেটমেন্ট ইউজ করতে পারি। এটি ইমপ্লিমেন্ট করতে কোন কাউন্টার ভ্যারিয়েবল ডিক্লেয়ার করা, ইনক্রিমেন্ট, ডিক্রিমেন্ট, এক্সপ্রেশন, অথবা কন্ডিশনের দরকার হয় না। শুধুমাত্র ‘while’ এর পরে ‘True’, তারপরে কোলন দিতে হবে। এরপর লুপ বডিতে কোড লিখতে হবে, যা অসীম সংখ্যক বার এক্সিকিউট হবে।  কারণ True সব সময়ই True।

 

'while True' ব্যবহারের ক্ষেত্রে একটু সাবধানতা অবলম্বন করা উচিত, কারণ 'break' স্টেটমেন্ট দিয়ে যদি  লুপটি থামানো না হয়, তাহলে এটি কন্টিনিউয়াসলি চলার কারণে টাইম কমপ্লেক্সিটি বেড়ে যাবে। এটি নরমালি if-else ব্লকের সাথে ইউজ হয়। তবে প্রোগ্রামার তার প্রয়োজন অনুসারে কোড লিখতে পারে, কারণ প্রত্যেকটা প্রোগ্রামের ডিমান্ড ভিন্ন ভিন্ন।

স্ট্রাকচার

while True:

            লুপ বডি…..

 

ইনফাইনাইট (অসীম) লুপ বন্ধ করতে  নিচের স্ট্রাকচারটি ব্যবহৃত হয়।

while True:

     লুপ বডি…..

     break         

উদাহরণ:

while True:

     print(' Inside infinite loop')

     break

 

আউটপুট:

Inside infinite loop

break ব্যবহার করার কারণে মেসেজটি মাত্র একবার প্রিন্ট হয়েছে, অন্যথায় লুপটি চলতে থাকত এবং মেসেজটি অসীম সংখ্যক বার প্রিন্ট হতো।

 

নিচের কোডটি অসীম সংখ্যক বার চলবে যতক্ষন ইউজার 'exit' ইনপুট না করে, কারণ True সব সময়ই True।

কোড:

while True:

    message = input('Enter a message: ')

    length = len(message)

    if message == 'exit':

        break

    print('Total character in the message :', length)

print('out of while True')

print('program has been terminated')

 

উপরের কোডের প্রথম লাইনে আমি while True ব্যবহার করেছি যাতে এটি একটি ইনফাইনাইট লুপ হয়। দ্বিতীয় লাইনে ইউজার থেকে একটি মেসেজ ইনপুট নিয়েছি। তৃতীয় লাইনে মেসেজেটির দৈর্ঘ্য (ক্যারেক্টার গুলোর মোট সংখ্যা ) বের করেছি।  চতুর্থ লাইনে চেক করেছি যে, যদি ইউজারের ইনপুট করা মেসেজটি ‘exit’ হয় তাহলে পরের লাইনটি কাজ করবে অর্থাৎ লুপটি বন্ধ করে দিবে। আর যদি মেসেজটি ‘exit’  না হয় তাহলে ষষ্ঠ লাইনটি (else ব্লক) এক্সিকিউট হবে, এবং মেসেজেটির দৈর্ঘ্য (ক্যারেক্টার গুলোর মোট সংখ্যা ) প্রিন্ট করবে। এই প্রক্রিয়া চলতে থাকবে যতক্ষণ না ইউজার ‘exit’ ইনপুট না করে। এখন কোডটি রান করলে নিচের মত আউটপুট দিবে।

আউটপুট:

Enter a message: Bangladesh

Total character in the message : 10

Enter a message: exit

out of while True

program has been terminated