প্রোগ্রামিং সি তে goto স্টেটমেন্ট

goto স্টেটমেন্ট প্রোগ্রামিং C তে ব্যবহার করা হয় মূলত প্রোগ্রামের এক স্থান থেকে অন্য স্থানে যাওয়ার জন্য। goto স্টেটমেন্ট ব্যবহার করে প্রোগ্রামের স্বাভাবিক ধারা ভেঙ্গে প্রোগ্রামের যে কোন যায়গায় চলে যাওয়া যায়, কোনরকম বাধা goto স্টেটমেন্ট মানে না অর্থাৎ কোনো লজিক মানে না এই goto স্টেটমেন্ট।

goto স্টেটমেন্ট এর গঠনঃ

 

goto label;        //লেবেল এর দ্বারা ঐ স্থান বুঝানো হয় যেখানে প্রোগ্রামটি যাবে

………….

………….

………….

label:

statement;

 

label এর স্থানে যেকোনো নাম ব্যবহার করা যাবে। এখানে label হলো শনাক্তকারী। যখন প্রোগ্রামটি তার goto স্টেটমেন্টে আসবে তখন সে সরাসরি label এর কাছে চলে যাবে। মাঝের প্রোগ্রাম আর পড়বে না। এখানে আমরা বলতে পারি goto স্টেটমেন্ট, প্রোগ্রাম এর ক্ষমতা label এর কাছে দিয়ে দিবে।

working of goto

উপরের চিত্রে বোঝা যাচ্ছে কিভাবে goto স্টেটমেন্ট থেকে label এ যাবে। আমরা নিচ থেকে উপরে বা উপর থেকে নিচে যেকোনো স্থানে যেতে পারবো এর দ্বারা। ইচ্ছে করলে আমরা অনেকগুলো label ব্যবহার করতে পারি একটা প্রোগ্রাম এর ভিতর।সেক্ষেত্রে অবশ্যই label নাম ভিন্ন ভিন্ন হতে হবে।

এখন আমরা একটি প্রোগ্রাম করে দেখবো।

ধরা যাক এমন একটি প্রোগ্রাম যেখানে আমরা বয়স ইনপুট হিসেবে দিব এবং প্রোগ্রাম আমাকে বলে দিবে আমার ভোটার হবার বয়স হয়েছে কিনা। এখানে একটু বলে রাখি, একটা প্রোগ্রাম আমরা অনেকভাবে করতে পারি,অনেক লজিক ব্যবহার করে।এই প্রোগ্রামটা আমরা goto স্টেটমেন্ট দিয়ে করবো।

#include<stdio.h>

#include<conio.h>

int main()

{

int age;

printf("Enter you age:");

scanf("%d", &age);

if(age>=18)

goto Vote;

else

goto NoVote;

NoVote:

printf("\n\tyou are not eligible to vote\n\n");

goto end;

 

Vote:
printf("\n\tyou are eligible for voting\n\n");
goto end;
end:
return 0;
}

 

 

উপরের প্রোগ্রামে 25 ইনপুট দিলে আমাদের নিচের ছবির মতো রেজাল্ট দেখাবে।

goto program solution

উপরের প্রোগ্রামে ৩টি label ব্যবহার করা হয়েছে। Vote, NoVote এবং end।

ধরি,প্রোগ্রামে ইনপুট দিলাম 25। এখন 25 if  স্টেটমেন্ট এর মাঝে ঢুকে দেখবে condition মিলে কিনা। 25 ইনপুট দিলে তা condition এর সাথে মিলে যায়। এখন if এর ভিতর বলা আছে goto Vote যার মানে এ Vote যাও। Vote এর ভিতর এর কাজ এখন প্রোগ্রাম এক্সিকিউট করবে। উপরের প্রোগ্রামে তাই হয়েছে। যদি 25 না হয়ে 11 হতো তখন একই কাজ হতো শুধু NoVote এ গিয়ে প্রোগ্রাম এক্সিকিউট হতো। প্রোগ্রামের মাঝে আরেকটি label ব্যবহার করা হয়েছে end । প্রোগ্রাম যাতে নিচের অংশকে বাদ দিয়ে শেষে চলে যায়।

নোটঃ যদিও goto স্টেটমেন্ট প্রোগ্রামের যেকোনো অংশে চলে যাবার ক্ষমতা দেয় কিন্তু এটা প্রোগ্রামের লজিককে জটিল করে তোলে। আধুনিক প্রোগ্রামিং এ goto স্টেটমেন্ট, খারাপ প্রোগ্রামিং অনুশীলন এবং ক্ষতিকারক গঠন হিসেবে পরিচিত।এখন  goto স্টেটমেন্টকে এড়িয়ে চলার জন্য break এবং continue স্টেটমেন্ট ব্যবহার করা হয়।

লেখক পরিচিতিঃ

Md. Wafi Islam Omi

লজিক ভালো লাগে, নতুন নতুন সমস্যা লজিক দিয়ে সমাধান করতে ভালো লাগে। প্রোগ্রামিং এর বিশাল সমুদ্রে এক কণা বালুর নিউট্রনও এখনো আহরণ করতে পারিনি। এই অতীব ক্ষুদ্র পারার আনন্দের অংশ ছড়িয়ে দাওয়ার ক্ষুদ্র প্রচেষ্টা হলো আমার লেখাগুলো।