নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements) হল প্রোগ্রামিং ভাষার অংশ যা কোডের কার্যক্রম কিভাবে সম্পাদিত হবে তা নিয়ন্ত্রণ করে। এটি প্রোগ্রামের কাঠামো নির্ধারণ করে এবং বিভিন্ন শর্তে কীভাবে প্রোগ্রামটি চলবে তা নিয়ন্ত্রণ করতে সহায়তা করে। সাধারণত, নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস তিনটি প্রধান ধরনের হয়: শর্তাধীন স্টেটমেন্ট, লুপিং স্টেটমেন্ট, এবং ব্রেক বা অব্যাহতির স্টেটমেন্ট।
১. শর্তাধীন স্টেটমেন্ট (Conditional Statements):
শর্তাধীন স্টেটমেন্টের মাধ্যমে প্রোগ্রামটি নির্দিষ্ট শর্তের উপর ভিত্তি করে কার্যক্রম নেয়। এটি সাধারণত if, else if, else, এবং switch ব্যবহার করে করা হয়।
if স্টেটমেন্ট:
if স্টেটমেন্টের মাধ্যমে একটি শর্ত পরীক্ষা করা হয়। যদি শর্তটি সঠিক (true) হয়, তবে কোডের নির্দিষ্ট অংশটি এক্সিকিউট হবে।
if (x > 10) then
say "x is greater than 10"else if এবং else স্টেটমেন্ট:
else if এবং else ব্যবহার করা হয় একাধিক শর্ত পরীক্ষা করতে। যখন প্রথম শর্ত মিথ্যা হয়, তখন পরবর্তী শর্তটি পরীক্ষা করা হয়।
if (x > 10) then
say "x is greater than 10"
else if (x = 10) then
say "x is equal to 10"
else
say "x is less than 10"switch (বা select):
switch স্টেটমেন্ট একাধিক শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয় এবং এটি কোডের আরো পরিষ্কারভাবে বিভিন্ন শর্ত পরিচালনা করতে সাহায্য করে।
select
when (x = 1) then
say "x is 1"
when (x = 2) then
say "x is 2"
otherwise
say "x is not 1 or 2"
end২. লুপিং স্টেটমেন্ট (Looping Statements):
লুপিং স্টেটমেন্টগুলির মাধ্যমে একাধিকবার কোডের কোনো অংশ সম্পাদন করা যায়। এটি প্রোগ্রামের কার্যক্রমের পুনরাবৃত্তি ঘটায়। সাধারণত for, while, এবং do while লুপ ব্যবহার করা হয়।
for লুপ:
for লুপ ব্যবহার করে নির্দিষ্ট সংখ্যক বার একটি কাজ করা যায়। এটি মূলত লুপের জন্য একটি শর্ত এবং ইনক্রিমেন্ট/ডিক্রিমেন্ট ডিফাইন করে।
for i = 1 to 5
say "Iteration: " i
endwhile লুপ:
while লুপে শর্তটি সঠিক থাকলে লুপটি চলতে থাকে। এটি শর্তের উপরে নির্ভরশীল।
i = 1
while (i <= 5) do
say "Iteration: " i
i = i + 1
enddo while লুপ:
do while লুপে প্রথমে কোড ব্লকটি এক্সিকিউট হয়, তারপর শর্ত পরীক্ষা করা হয়।
i = 1
do while (i <= 5)
say "Iteration: " i
i = i + 1
end৩. ব্রেক এবং কন্টিনিউ (Break and Continue Statements):
break:
break স্টেটমেন্ট ব্যবহার করে একটি লুপকে প্রাথমিক অবস্থায় বন্ধ করা যায়।
for i = 1 to 10
if (i = 5) then
break
say "Iteration: " i
endcontinue:
continue স্টেটমেন্টের মাধ্যমে বর্তমান লুপের বর্তমান পুনরাবৃত্তি স্কিপ করা হয় এবং পরবর্তী পুনরাবৃত্তিতে চলে যায়।
for i = 1 to 10
if (i = 5) then
continue
say "Iteration: " i
endসারাংশ:
নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস প্রোগ্রামে শর্তাধীন এবং পুনরাবৃত্তি কার্যক্রমের জন্য গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলোর মাধ্যমে প্রোগ্রামটি শর্তানুসারে বিভিন্ন পথ নিতে পারে, যা কোডের কার্যকারিতা এবং প্রয়োজনীয়তার ভিত্তিতে সিদ্ধান্ত নেয়। Rexx-এ এই স্টেটমেন্টগুলি খুবই সহজ এবং স্বচ্ছভাবে ব্যবহৃত হয়, যা কোডের কার্যকারিতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।
প্রোগ্রামিং ভাষায় if, else, এবং else if স্টেটমেন্টগুলি শর্তভিত্তিক (conditional) সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়। এগুলির সাহায্যে একটি নির্দিষ্ট শর্ত পূর্ণ হলে একটি কাজ সম্পাদন করা হয় এবং না হলে অন্য একটি কাজ করা হয়। এটি সাধারণত প্রোগ্রামে নিয়ন্ত্রণ প্রবাহ তৈরি করতে ব্যবহৃত হয়।
1. if স্টেটমেন্ট:
if স্টেটমেন্টটি ব্যবহৃত হয় শর্ত যাচাই করতে এবং যদি সেই শর্তটি সত্য (True) হয়, তাহলে একটি নির্দিষ্ট কোড ব্লক চালানো হয়।
Syntax:
if <condition> then
<statements>;এখানে <condition> হলো সেই শর্ত যা যাচাই করা হবে। যদি শর্তটি সত্য হয়, তাহলে <statements> কার্যকর হবে।
উদাহরণ:
x = 10
if x > 5 then
say "x is greater than 5"উপরের উদাহরণে, কারণ x > 5 শর্তটি সত্য, কোডটি "x is greater than 5" প্রিন্ট করবে।
2. else স্টেটমেন্ট:
else স্টেটমেন্টটি if স্টেটমেন্টের পরে ব্যবহৃত হয় এবং যদি if স্টেটমেন্টের শর্ত মিথ্যা (False) হয়, তাহলে else স্টেটমেন্টের কোড ব্লক কার্যকর হয়।
Syntax:
if <condition> then
<statements>;
else
<statements>;উদাহরণ:
x = 3
if x > 5 then
say "x is greater than 5"
else
say "x is not greater than 5"এখানে, x > 5 শর্তটি মিথ্যা (False) হওয়ায় "x is not greater than 5" প্রিন্ট হবে।
3. else if স্টেটমেন্ট:
else if স্টেটমেন্টটি if এবং else এর মধ্যে একটি বিকল্প শর্ত প্রদান করে। এটি ব্যবহার করা হয় যখন একাধিক শর্ত চেক করতে হয়।
Syntax:
if <condition1> then
<statements>;
else if <condition2> then
<statements>;
else
<statements>;এখানে, প্রথমে if শর্তটি পরীক্ষা করা হয়। যদি তা মিথ্যা হয়, তাহলে else if এর শর্ত পরীক্ষা করা হয়, এবং যদি else if এর শর্তও মিথ্যা হয়, তাহলে else এর কোড ব্লক কার্যকর হবে।
উদাহরণ:
x = 7
if x > 10 then
say "x is greater than 10"
else if x = 7 then
say "x is equal to 7"
else
say "x is less than 7"এখানে, প্রথম শর্তটি মিথ্যা, তবে দ্বিতীয় শর্তটি সত্য, তাই "x is equal to 7" প্রিন্ট হবে।
সারাংশ:
if: শর্ত যাচাই করে, যদি শর্তটি সত্য হয়, তবে নির্দিষ্ট কোড কার্যকর হয়।else: যদিifশর্তটি মিথ্যা হয়, তবে এটি কাজ করবে।else if: একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়।
এই স্টেটমেন্টগুলি প্রোগ্রামে বিভিন্ন শর্তানুযায়ী কোড কার্যকর করতে ব্যবহৃত হয় এবং এটি সিদ্ধান্ত গ্রহণের প্রক্রিয়া সহজ করে তোলে।
SELECT এবং WHEN স্টেটমেন্ট দুটি গুরুত্বপূর্ণ কন্ট্রোল স্ট্রাকচার, যা বিভিন্ন শর্ত অনুযায়ী কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়। এগুলি বিশেষ করে Rexx সহ অন্যান্য প্রোগ্রামিং ভাষায় শর্ত-ভিত্তিক লজিক প্রয়োগ করতে সহায়তা করে। নিচে এই দুটি স্টেটমেন্টের বিস্তারিত আলোচনা করা হলো।
১. SELECT স্টেটমেন্ট
SELECT স্টেটমেন্টটি বিভিন্ন শর্ত অনুযায়ী একাধিক বিকল্পের মধ্যে নির্বাচন করতে ব্যবহৃত হয়। এটি একটি কন্ট্রোল স্ট্রাকচার যা একটি নির্দিষ্ট শর্তের ভিত্তিতে নির্দিষ্ট কোড ব্লক কার্যকর করার সুযোগ দেয়। মূলত SELECT একটি রুটিন বা সিস্টেমের শর্ত অনুযায়ী বিভিন্ন বিকল্পের মধ্যে নির্বাচন করার জন্য ব্যবহার হয়।
ব্যবহার:
Rexx বা অন্যান্য প্রোগ্রামিং ভাষায় SELECT একটি শর্ত ভিত্তিক স্টেটমেন্ট হিসেবে কাজ করে, যেখানে আপনি একাধিক বিকল্পের মধ্যে শর্ত অনুযায়ী সঠিক বিকল্প নির্বাচন করতে পারেন। SELECT এর মাধ্যমে আপনি একটি নির্দিষ্ট শর্ত পূর্ণ হলে কোন কোড এক্সিকিউট হবে তা নির্ধারণ করতে পারেন।
সিনট্যাক্স:
SELECT
WHEN condition1 THEN
/* block of code */
WHEN condition2 THEN
/* block of code */
OTHERWISE
/* default block of code */
ENDউদাহরণ:
/* রেটিং এর ওপর ভিত্তি করে মূল্য নির্ধারণ */
rating = 4
SELECT
WHEN rating = 5 THEN
SAY "Excellent"
WHEN rating = 4 THEN
SAY "Good"
WHEN rating = 3 THEN
SAY "Average"
OTHERWISE
SAY "Poor"
ENDএখানে, SELECT স্টেটমেন্টটি rating এর মানের ভিত্তিতে বিভিন্ন শর্ত পরীক্ষা করে এবং সেই অনুযায়ী একটি ফলাফল প্রদর্শন করে।
২. WHEN স্টেটমেন্ট
WHEN স্টেটমেন্টটি SELECT স্টেটমেন্টের অংশ হিসেবে ব্যবহৃত হয়, যেখানে প্রতিটি শর্তের সাথে সম্পর্কিত কোড ব্লক নির্ধারণ করা হয়। WHEN স্টেটমেন্টটি একটি শর্তের ভিত্তিতে একটি কোড ব্লক কার্যকর করতে ব্যবহৃত হয়।
ব্যবহার:
WHEN ব্যবহার করে একাধিক শর্তের মধ্যে একটি শর্তের সঠিকতা অনুযায়ী কার্যক্রম পরিচালনা করা যায়। এটি সাধারণত SELECT এর সাথে ব্যবহৃত হয়, কিন্তু কখনও কখনও IF বা অন্য কন্ট্রোল স্ট্রাকচারের সাথে একত্রিত হয়ে ব্যবহৃত হতে পারে।
সিনট্যাক্স:
SELECT
WHEN condition1 THEN
/* block of code */
WHEN condition2 THEN
/* block of code */
OTHERWISE
/* default block of code */
ENDউদাহরণ:
/* সিস্টেম স্ট্যাটাস চেক */
status = "Active"
SELECT
WHEN status = "Active" THEN
SAY "System is Active"
WHEN status = "Inactive" THEN
SAY "System is Inactive"
OTHERWISE
SAY "Unknown status"
ENDএখানে, SELECT স্টেটমেন্টটি status এর মানের উপর ভিত্তি করে বিভিন্ন শর্ত পরীক্ষা করে এবং সেই অনুযায়ী একটি ফলাফল প্রদর্শন করে।
সারাংশ:
SELECTএকটি কন্ট্রোল স্ট্রাকচার যা একাধিক শর্তের মধ্যে নির্বাচন করতে ব্যবহৃত হয়।WHENএকটি শর্ত পরীক্ষা করে এবং সেক্ষেত্রে নির্দিষ্ট কোড এক্সিকিউট করতে সহায়তা করে।SELECTএবংWHENএকসাথে ব্যবহার করে আপনি কোডের বিভিন্ন শাখায় শর্তভিত্তিক কার্যক্রম পরিচালনা করতে পারেন, যা প্রোগ্রামিংকে আরো কার্যকর এবং সংক্ষিপ্ত করে তোলে।
Rexx প্রোগ্রামিং ভাষায় লুপগুলি ব্যবহৃত হয় নির্দিষ্ট শর্ত অনুযায়ী একাধিক বার কোড কার্যকরী করার জন্য। Rexx-এ প্রধানত তিন ধরনের লুপ ব্যবহৃত হয়: do, while, এবং for লুপ। এই লুপগুলির প্রতিটির ব্যবহার ও গঠন আলাদা, তবে সবই একটি নির্দিষ্ট শর্তের ভিত্তিতে কোড পুনরায় কার্যকর করে।
১. do লুপ
do লুপটি একটি নির্দিষ্ট সংখ্যক বার কোড চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত কাউন্টার ব্যবহার করে লুপের পুনরাবৃত্তি সংখ্যা নির্ধারণ করা হয়। একটি do লুপে নির্দিষ্ট শর্তে কোড চালানোর জন্য end শব্দটি দিয়ে লুপের শেষে বন্ধ করা হয়।
সিনট্যাক্স:
do counter = 1 to 5
/* কোড যা পুনরাবৃত্তি হবে */
say counter
endব্যাখ্যা:
- এখানে,
counter১ থেকে ৫ পর্যন্ত বৃদ্ধি পাবে, এবং প্রতিটি বারsay counterকোডটি চালানো হবে। অর্থাৎ, এই লুপটি ৫ বার চলবে এবং প্রতিবারcounterএর মান প্রদর্শিত হবে।
২. while লুপ
while লুপটি একটি শর্ত সাপেক্ষে কোড পুনরায় চালানোর জন্য ব্যবহৃত হয়। যতক্ষণ না শর্তটি মিথ্যা হয়, ততক্ষণ পর্যন্ত এটি চলতে থাকে। এটি একটি সংযোজনীয় শর্তের ভিত্তিতে চলবে, অর্থাৎ শর্তটি প্রথমে চেক করা হয়, এবং শর্তটি সত্য হলে কোড চালানো হয়।
সিনট্যাক্স:
counter = 1
while counter <= 5
/* কোড যা পুনরাবৃত্তি হবে */
say counter
counter = counter + 1
endব্যাখ্যা:
- এখানে,
counterপ্রথমে ১ নির্ধারিত হবে। এরপর, যতক্ষণ নাcounter <= 5শর্তটি সত্য থাকে, ততক্ষণ কোড চলতে থাকবে। প্রতিবারcounterএর মান ১ বাড়ানো হবে এবং পরবর্তীতে তা প্রদর্শিত হবে। যখনcounterএর মান ৫ এর বেশি হবে, তখন লুপ বন্ধ হয়ে যাবে।
৩. for লুপ
for লুপটি সাধারণত একটি সিকোন্সের মধ্যে পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। এটি do লুপের মতো হলেও, এতে আরো স্বচ্ছতা এবং সিস্টেমের জন্য সহজভাবে একটি নির্দিষ্ট উপাদান ধরে পুনরাবৃত্তি করা হয়।
সিনট্যাক্স:
for counter = 1 to 5
/* কোড যা পুনরাবৃত্তি হবে */
say counter
endব্যাখ্যা:
- এখানে
counter১ থেকে ৫ পর্যন্ত একে একে বৃদ্ধি পাবে এবং প্রতিটি বারsay counterকোডটি চালানো হবে, ঠিকdoলুপের মতো। তবেforলুপে সাধারণত লুপের পরিধি নির্ধারণ করা হয়, এবং এটি স্বাভাবিকভাবে সীমাবদ্ধ থাকে।
তুলনা: do, while, এবং for লুপ
- do লুপ: নির্দিষ্ট বার কোড চলানোর জন্য। সাধারণত কাউন্টার বা ইন্ডেক্স ব্যবহার করা হয়।
- while লুপ: শর্তভিত্তিক লুপ, যেখানে প্রথমে শর্ত পরীক্ষা করা হয়। শর্তটি সত্য হলে লুপ চলতে থাকে।
- for লুপ: সিকোন্স বা নির্দিষ্ট রেঞ্জের মধ্যে পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। এটি নির্দিষ্ট সীমা বা পরিধির মধ্যে সহজে লুপ চালাতে ব্যবহৃত হয়।
উদাহরণ (সমস্ত লুপের জন্য):
/* do লুপ উদাহরণ */
do counter = 1 to 5
say "do লুপের মান: " counter
end
/* while লুপ উদাহরণ */
counter = 1
while counter <= 5
say "while লুপের মান: " counter
counter = counter + 1
end
/* for লুপ উদাহরণ */
for counter = 1 to 5
say "for লুপের মান: " counter
endআউটপুট:
do লুপের মান: 1
do লুপের মান: 2
do লুপের মান: 3
do লুপের মান: 4
do লুপের মান: 5
while লুপের মান: 1
while লুপের মান: 2
while লুপের মান: 3
while লুপের মান: 4
while লুপের মান: 5
for লুপের মান: 1
for লুপের মান: 2
for লুপের মান: 3
for লুপের মান: 4
for লুপের মান: 5সারাংশ:
Rexx ভাষায় do, while, এবং for লুপ তিনটি প্রধান লুপ টাইপ যা কোডের পুনরাবৃত্তি নির্ধারণের জন্য ব্যবহৃত হয়। do লুপটি নির্দিষ্ট সংখ্যক বার কোড চালানোর জন্য, while লুপটি শর্ত অনুযায়ী চালানো হয়, এবং for লুপটি সাধারণত নির্দিষ্ট সিকোন্স বা রেঞ্জের মধ্যে কোড চালানোর জন্য ব্যবহৃত হয়।
Loop control statements প্রোগ্রামিং ভাষায় লুপের মধ্যে কন্ট্রোল ফ্লো পরিবর্তন করার জন্য ব্যবহৃত হয়। Rexx ভাষায় iterate, leave, এবং return এই তিনটি কমান্ড লুপের আচরণ নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এগুলোর কাজ এবং ব্যবহার সম্পর্কে নিচে বিস্তারিত আলোচনা করা হলো:
১. iterate:
iterate কমান্ডটি লুপের বর্তমান চক্রের শেষ পর্যন্ত পৌঁছানোর পরপরই পরবর্তী ইটারেশনে চলে যেতে ব্যবহৃত হয়। এটি লুপের যে কোনো জায়গায় ব্যবহার করা যেতে পারে, এবং এর মাধ্যমে লুপের বর্তমান ইটারেশন থেকে বের হয়ে গিয়ে পরবর্তী ইটারেশনে চলে যায়, মানে পরবর্তী চক্রে কন্ট্রোল পাঠায়।
ব্যবহার উদাহরণ:
parse var x 1
do while x <= 5
if x = 3 then iterate /* যখন x 3 হয়, পরবর্তী ইটারেশনে চলে যাবে */
say "x is" x
x = x + 1
endআন্তরিকভাবে ব্যাখ্যা:
এই উদাহরণে, যখন x এর মান ৩ হয়, তখন iterate কমান্ডের মাধ্যমে পরবর্তী ইটারেশনে চলে যাবে এবং "x is 3" ছাপা হবে না। কেবলমাত্র ১, ২, ৪, ৫ প্রিন্ট হবে।
২. leave:
leave কমান্ডটি লুপ থেকে পুরোপুরি বেরিয়ে যাওয়ার জন্য ব্যবহৃত হয়। এটি ব্যবহার করলে লুপের পরবর্তী কোন চক্রে প্রবেশ না করে সরাসরি লুপের বাইরে চলে যায়।
ব্যবহার উদাহরণ:
parse var x 1
do while x <= 5
if x = 3 then leave /* যখন x 3 হয়, লুপ থেকে বের হয়ে যাবে */
say "x is" x
x = x + 1
endআন্তরিকভাবে ব্যাখ্যা:
এই উদাহরণে, যখন x এর মান ৩ হয়, তখন leave কমান্ড লুপের বাইরে চলে যেতে বলবে এবং "x is 3" প্রিন্ট হওয়া বন্ধ হয়ে যাবে। এখানে কেবলমাত্র "x is 1" এবং "x is 2" প্রিন্ট হবে।
৩. return:
return কমান্ডটি সাধারণত ফাংশনের মধ্যে ব্যবহৃত হয়, যেখানে এটি একটি ফাংশনের কার্যক্রম শেষ করতে ব্যবহৃত হয় এবং কিছু মান (যদি থাকে) ফেরত দেয়। এটি লুপের মধ্যে ব্যবহৃত হলে, লুপের কার্যক্রম বন্ধ করে এবং ফাংশন বা স্ক্রিপ্টের পরবর্তী অংশে চলে যায়।
ব্যবহার উদাহরণ:
parse var x 1
do while x <= 5
if x = 3 then return /* যখন x 3 হয়, লুপ শেষ হয়ে যাবে এবং return দিয়ে প্রোগ্রাম থেকে বের হয়ে যাবে */
say "x is" x
x = x + 1
endআন্তরিকভাবে ব্যাখ্যা:
এই উদাহরণে, যখন x এর মান ৩ হয়, তখন return লুপের কার্যক্রম বন্ধ করে প্রোগ্রাম থেকে বের হয়ে যাবে, এবং পরবর্তী কোন ইটারেশন সম্পন্ন হবে না। এখানে "x is 1" এবং "x is 2" প্রিন্ট হবে, তবে "x is 3" প্রিন্ট হবে না।
সারাংশ:
- iterate: বর্তমান লুপ ইটারেশন শেষ করে পরবর্তী ইটারেশনে চলে যায়।
- leave: লুপ থেকে বের হয়ে যায়, পরবর্তী ইটারেশনে যায় না।
- return: ফাংশন বা স্ক্রিপ্ট থেকে বেরিয়ে যায়, এবং কার্যক্রমের পরবর্তী অংশে চলে যায়।
এই তিনটি কমান্ডের মাধ্যমে লুপের প্রবাহ আরও সহজভাবে নিয়ন্ত্রণ করা যায়, যা প্রোগ্রামের কার্যকারিতা এবং স্ট্রাকচারকে আরও উন্নত করে।
Read more