নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস (Control Flow Statements in Fortran)
ফোরট্রানে নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস প্রোগ্রামের কার্যপ্রবাহ নিয়ন্ত্রণে ব্যবহৃত হয়। এগুলি শর্তসাপেক্ষে বা পুনরাবৃত্তিমূলক কার্য পরিচালনা করে। নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টসের মধ্যে সাধারণত শর্তসাপেক্ষ স্টেটমেন্টস (Conditional Statements) এবং লুপ স্টেটমেন্টস (Loop Statements) অন্তর্ভুক্ত থাকে।
১. শর্তসাপেক্ষ স্টেটমেন্টস (Conditional Statements)
শর্তসাপেক্ষ স্টেটমেন্টস ব্যবহার করে নির্দিষ্ট শর্ত পূরণ হলে কোন কার্য সম্পাদিত হবে তা নির্ধারণ করা যায়।
IF স্টেটমেন্ট
IF স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট শর্ত অনুযায়ী কার্যক্রম সম্পাদন করা যায়।
if (condition) then
! শর্তটি সত্য হলে এই কোডটি কার্যকর হবে
end ifউদাহরণ:
integer :: num
num = 5
if (num > 0) then
print *, "The number is positive."
end ifIF-ELSE স্টেটমেন্ট
IF-ELSE স্টেটমেন্ট ব্যবহার করে দুটি পৃথক কার্যক্রম নির্ধারণ করা যায়, যার একটি শর্ত সত্য হলে এবং অন্যটি শর্ত মিথ্যা হলে কার্যকর হবে।
if (condition) then
! শর্তটি সত্য হলে এই কোড কার্যকর হবে
else
! শর্তটি মিথ্যা হলে এই কোড কার্যকর হবে
end ifউদাহরণ:
integer :: num
num = -3
if (num > 0) then
print *, "The number is positive."
else
print *, "The number is non-positive."
end ifIF-ELSEIF-ELSE স্টেটমেন্ট
IF-ELSEIF-ELSE স্টেটমেন্ট ব্যবহার করে একাধিক শর্ত চেক করা যায়।
if (condition1) then
! condition1 সত্য হলে কার্যকর হবে
elseif (condition2) then
! condition2 সত্য হলে কার্যকর হবে
else
! উপরের কোনো শর্ত সত্য না হলে কার্যকর হবে
end ifউদাহরণ:
integer :: num
num = 0
if (num > 0) then
print *, "The number is positive."
elseif (num < 0) then
print *, "The number is negative."
else
print *, "The number is zero."
end if২. লুপ স্টেটমেন্টস (Loop Statements)
লুপ স্টেটমেন্ট ব্যবহার করে একটি নির্দিষ্ট শর্ত পূরণ হওয়া পর্যন্ত কোড ব্লক পুনরাবৃত্তি করা হয়।
DO লুপ
DO লুপ ফোরট্রানের একটি সাধারণ লুপ স্ট্রাকচার, যা একটি নির্দিষ্ট সময়ের জন্য পুনরাবৃত্তি করতে ব্যবহৃত হয়।
do variable = start, end, increment
! লুপের প্রতিটি চক্রে এই কোড ব্লক কার্যকর হবে
end doউদাহরণ:
integer :: i
do i = 1, 5
print *, "Value of i:", i
end doএখানে, লুপটি ১ থেকে ৫ পর্যন্ত চলবে এবং প্রতিবার i এর মান প্রিন্ট করবে।
WHILE লুপ
WHILE লুপ একটি নির্দিষ্ট শর্ত পূরণ হওয়া পর্যন্ত পুনরাবৃত্তি করতে ব্যবহৃত হয়।
do while (condition)
! শর্তটি সত্য হলে এই কোড ব্লক কার্যকর হবে
end doউদাহরণ:
integer :: i
i = 1
do while (i <= 5)
print *, "Value of i:", i
i = i + 1
end doএখানে, i এর মান ৫-এর কম বা সমান হওয়া পর্যন্ত লুপ চলবে।
EXIT এবং CYCLE স্টেটমেন্ট
ফোরট্রানে EXIT এবং CYCLE স্টেটমেন্ট লুপ নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
- EXIT: লুপ সম্পূর্ণরূপে বন্ধ করতে ব্যবহৃত হয়।
- CYCLE: বর্তমান পুনরাবৃত্তি বাদ দিয়ে পরবর্তী পুনরাবৃত্তিতে যেতে ব্যবহৃত হয়।
do i = 1, 10
if (i == 5) cycle ! ৫ হলে পরবর্তী পুনরাবৃত্তিতে চলে যাবে
if (i == 8) exit ! ৮ হলে লুপ সম্পূর্ণরূপে বন্ধ হবে
print *, "Value of i:", i
end do৩. SELECT CASE স্টেটমেন্ট
SELECT CASE স্টেটমেন্ট ব্যবহার করে একাধিক মানের উপর ভিত্তি করে নির্দিষ্ট কার্যক্রম নির্বাচন করা যায়। এটি IF-ELSEIF-এর বিকল্প হিসেবে কাজ করে।
select case (variable)
case (value1)
! যদি variable এর মান value1 হয়, এই কোড কার্যকর হবে
case (value2)
! যদি variable এর মান value2 হয়, এই কোড কার্যকর হবে
case default
! যদি উপরোক্ত কোনো মানের সাথে মিলে না যায়, এই কোড কার্যকর হবে
end selectউদাহরণ:
integer :: day
day = 3
select case (day)
case (1)
print *, "Monday"
case (2)
print *, "Tuesday"
case (3)
print *, "Wednesday"
case default
print *, "Invalid day"
end selectউপসংহার
ফোরট্রান-এ নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস প্রোগ্রামের কার্যপ্রবাহ নিয়ন্ত্রণে অত্যন্ত সহায়ক। এর মাধ্যমে প্রোগ্রামের কাঠামো তৈরি করা, শর্ত অনুযায়ী কোড কার্যকর করা এবং নির্দিষ্ট চক্রে পুনরাবৃত্তি পরিচালনা করা সহজ হয়।
ফোরট্রানে IF, ELSE IF, ELSE স্টেটমেন্ট
ফোরট্রানে IF, ELSE IF, এবং ELSE স্টেটমেন্টগুলো শর্তাধীন (conditional) কার্যক্রমের জন্য ব্যবহৃত হয়। এই স্টেটমেন্টগুলির মাধ্যমে প্রোগ্রামটি নির্দিষ্ট শর্ত পূর্ণ হলে একটি কাজ সম্পাদন করবে, আর শর্ত পূর্ণ না হলে অন্য একটি কাজ করবে।
১. IF স্টেটমেন্ট
IF স্টেটমেন্টটি সবচেয়ে মৌলিক শর্ত পরীক্ষার জন্য ব্যবহৃত হয়। এটি শর্ত সত্য হলে একটি নির্দিষ্ট কোড ব্লক কার্যকর করে এবং শর্ত মিথ্যা হলে কিছুই করে না (যদি না অন্য কোনো শর্ত দেওয়া থাকে)।
সিনট্যাক্স:
IF (condition) THEN
! কোড যা শর্ত সত্য হলে কার্যকর হবে
END IFউদাহরণ:
INTEGER :: x
x = 5
IF (x > 0) THEN
PRINT *, 'x is positive'
END IFএখানে যদি x ০-এর চেয়ে বড় হয়, তবে আউটপুট হবে: x is positive।
২. IF-ELSE স্টেটমেন্ট
IF-ELSE স্টেটমেন্টে দুটি শর্ত থাকে—একটি শর্ত সত্য হলে প্রথম ব্লক কার্যকর হয়, আর যদি শর্ত মিথ্যা হয়, তবে দ্বিতীয় ব্লক কার্যকর হয়।
সিনট্যাক্স:
IF (condition) THEN
! শর্ত সত্য হলে কোড
ELSE
! শর্ত মিথ্যা হলে কোড
END IFউদাহরণ:
INTEGER :: x
x = -5
IF (x > 0) THEN
PRINT *, 'x is positive'
ELSE
PRINT *, 'x is non-positive'
END IFএখানে x মাইনাস ৫ হওয়ায় আউটপুট হবে: x is non-positive।
৩. IF-ELSE IF-ELSE স্টেটমেন্ট
IF-ELSE IF-ELSE স্টেটমেন্টে একাধিক শর্ত পরীক্ষা করা যায়। যদি প্রথম শর্ত মিথ্যা হয়, তবে পরবর্তী শর্তটি পরীক্ষা করা হয় এবং শেষ পর্যন্ত ELSE ব্লক কার্যকর হয় যদি কোনো শর্ত সত্য না হয়।
সিনট্যাক্স:
IF (condition1) THEN
! শর্ত ১ সত্য হলে কোড
ELSE IF (condition2) THEN
! শর্ত ২ সত্য হলে কোড
ELSE
! শর্ত ১ এবং ২ মিথ্যা হলে কোড
END IFউদাহরণ:
INTEGER :: x
x = 0
IF (x > 0) THEN
PRINT *, 'x is positive'
ELSE IF (x < 0) THEN
PRINT *, 'x is negative'
ELSE
PRINT *, 'x is zero'
END IFএখানে x এর মান ০ হওয়ায় আউটপুট হবে: x is zero।
৪. নেস্টেড IF স্টেটমেন্ট (Nested IF)
ফোরট্রানে IF স্টেটমেন্টকে অন্য IF স্টেটমেন্টের মধ্যে ব্যবহার করা যেতে পারে, যা নেস্টেড IF নামে পরিচিত। এটি জটিল শর্তাবলীর জন্য উপযোগী।
উদাহরণ:
INTEGER :: x
x = 10
IF (x > 0) THEN
IF (x > 5) THEN
PRINT *, 'x is greater than 5'
ELSE
PRINT *, 'x is greater than 0 but less than or equal to 5'
END IF
ELSE
PRINT *, 'x is non-positive'
END IFএখানে x এর মান ১০ হওয়ায় আউটপুট হবে: x is greater than 5।
IF-ELSEIF-ELSE স্টেটমেন্টের উদাহরণ:
INTEGER :: a, b
a = 10
b = 5
IF (a > b) THEN
PRINT *, 'a is greater than b'
ELSE IF (a < b) THEN
PRINT *, 'a is less than b'
ELSE
PRINT *, 'a is equal to b'
END IFএখানে, a এবং b এর মানের ভিত্তিতে যথাযথ আউটপুট প্রিন্ট হবে। এখানে আউটপুট হবে: a is greater than b।
সারাংশ
- IF: একটি শর্ত যাচাই করে, যদি শর্ত সত্য হয় তবে কোড কার্যকর হয়।
- IF-ELSE: দুটি শর্ত থাকে—একটি শর্ত সত্য হলে প্রথম ব্লক কার্যকর, আর অন্যথায় দ্বিতীয় ব্লক কার্যকর।
- IF-ELSE IF-ELSE: একাধিক শর্ত পরীক্ষা করে এবং কোনটি সত্য হলে তার ব্লক কার্যকর হয়।
- নেস্টেড IF: একটি
IFএর মধ্যে অন্যIFব্যবহার করা হয়।
এই স্টেটমেন্টগুলো ফোরট্রানে শর্তাধীন কার্যক্রম পরিচালনা করতে অত্যন্ত গুরুত্বপূর্ণ।
SELECT CASE এর ব্যবহার
ফোরট্রানে SELECT CASE স্টেটমেন্ট একটি শর্তযুক্ত সিদ্ধান্ত গ্রহণের জন্য ব্যবহৃত হয়, যেখানে একটি একক এক্সপ্রেশন বা ভেরিয়েবলকে বিভিন্ন মানের ভিত্তিতে পরীক্ষা করা হয়। এটি অনেকগুলো IF-ELSE স্টেটমেন্টের তুলনায় আরও পরিষ্কার এবং সহজভাবে ব্যবহৃত হতে পারে, বিশেষত যখন একাধিক সম্ভাব্য মান পরীক্ষা করার প্রয়োজন হয়।
SELECT CASE সাধারণত গাণিতিক, চরিত্র, বা অন্যান্য এক্সপ্রেশন বা ভেরিয়েবলের বিভিন্ন মানের ভিত্তিতে বিভিন্ন কার্যক্রম নির্ধারণ করতে ব্যবহৃত হয়।
SELECT CASE Syntax
SELECT CASE (expression)
CASE (value1)
! statements for value1
CASE (value2)
! statements for value2
CASE (value3)
! statements for value3
CASE DEFAULT
! statements for any other value
END SELECTএখানে:
expressionহচ্ছে যেটি পরীক্ষা করা হবে, যেমন একটি ভেরিয়েবল বা এক্সপ্রেশন।CASE (value)হলো এমন একটি শর্ত যা মেলে যদিexpressionএর মানvalueএর সমান হয়।CASE DEFAULTহলো একটি ডিফল্ট বিকল্প যা অন্য কোনো মানের জন্য ব্যবহার করা হয় যদি কোনCASEমিলে না যায়।
উদাহরণ: SELECT CASE
ধরা যাক, আমাদের কাছে একটি ইনপুট ভেরিয়েবল grade রয়েছে এবং আমরা তার ভিত্তিতে বিভিন্ন বার্তা প্রদর্শন করতে চাই:
PROGRAM GradeCheck
INTEGER :: grade
PRINT *, "Enter your grade:"
READ *, grade
SELECT CASE (grade)
CASE (90:100)
PRINT *, "Excellent!"
CASE (80:89)
PRINT *, "Good job!"
CASE (70:79)
PRINT *, "You passed."
CASE (60:69)
PRINT *, "Needs improvement."
CASE DEFAULT
PRINT *, "Invalid grade."
END SELECT
END PROGRAM GradeCheckএখানে:
- যদি
gradeএর মান 90 থেকে 100 এর মধ্যে হয়, তাহলে"Excellent!"প্রিন্ট হবে। - যদি
gradeএর মান 80 থেকে 89 এর মধ্যে হয়, তাহলে"Good job!"প্রিন্ট হবে। - যদি
gradeএর মান 70 থেকে 79 এর মধ্যে হয়, তাহলে"You passed."প্রিন্ট হবে। - যদি
gradeএর মান 60 থেকে 69 এর মধ্যে হয়, তাহলে"Needs improvement."প্রিন্ট হবে। - অন্য কোনো মানের জন্য
"Invalid grade."প্রিন্ট হবে।
SELECT CASE এর সুবিধা
- পঠনযোগ্যতা এবং পরিষ্কারতা: একাধিক
if-elseস্টেটমেন্টের তুলনায়SELECT CASEঅনেক বেশি পরিষ্কার এবং কোডে পড়া সহজ করে তোলে। - কোনো মানের তুলনা:
SELECT CASEস্টেটমেন্ট এক্সপ্রেশন বা ভেরিয়েবলকে একাধিক সম্ভাব্য মানের সঙ্গে তুলনা করতে সুবিধাজনক। - ডিফল্ট শাখা:
CASE DEFAULTব্যবহার করে আপনি এমন কোনো শাখা নির্ধারণ করতে পারেন যা সমস্ত অপরিচিত মানের জন্য কার্যকর হবে।
উন্নত SELECT CASE (Range Matching)
ফোরট্রানে SELECT CASE এর মাধ্যমে রেঞ্জের মানও পরীক্ষা করা যেতে পারে, যেমন:
PROGRAM RangeCheck
INTEGER :: x
PRINT *, "Enter a number:"
READ *, x
SELECT CASE (x)
CASE (1:10)
PRINT *, "The number is between 1 and 10."
CASE (11:20)
PRINT *, "The number is between 11 and 20."
CASE DEFAULT
PRINT *, "The number is out of range."
END SELECT
END PROGRAM RangeCheckএখানে, x যদি 1 থেকে 10 এর মধ্যে হয়, তাহলে "The number is between 1 and 10." প্রিন্ট হবে। যদি 11 থেকে 20 এর মধ্যে হয়, তাহলে "The number is between 11 and 20." প্রিন্ট হবে। অন্যথায় "The number is out of range." প্রিন্ট হবে।
উপসংহার
ফোরট্রানে SELECT CASE স্টেটমেন্ট একটি শক্তিশালী টুল যা একটি এক্সপ্রেশন বা ভেরিয়েবলকে একাধিক সম্ভাব্য মানের সঙ্গে তুলনা করতে সাহায্য করে। এটি বড় কোডবেসের মধ্যে পঠনযোগ্যতা এবং পরিষ্কারতা বাড়াতে কার্যকর, এবং এর মাধ্যমে কমপ্লেক্স শর্ত পরীক্ষা সহজে পরিচালনা করা সম্ভব হয়।
ফোরট্রানে DO লুপ এবং DO WHILE লুপ
ফোরট্রানে লুপিং ব্যবহারের জন্য দুটি প্রধান প্রকারের লুপ আছে: DO লুপ এবং DO WHILE লুপ। এগুলি একই কাজের জন্য ব্যবহৃত হয়, তবে তাদের ব্যবহার পদ্ধতি এবং শর্ত নির্ধারণের উপায়ে কিছু পার্থক্য রয়েছে।
নিচে ফোরট্রানের DO লুপ এবং DO WHILE লুপ এর বিস্তারিত আলোচনা করা হলো।
১. DO লুপ
DO লুপ ফোরট্রানে একটি নির্দিষ্ট সংখ্যক পুনরাবৃত্তির জন্য ব্যবহৃত হয়। এটি একটি ইটারেটিভ লুপ, যা একটি নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত কোডের একটি ব্লক বারবার কার্যকর করে। এটি একটি নির্দিষ্ট সীমার মধ্যে চলতে থাকে এবং একটি কাউন্টার ব্যবহার করে সংখ্যাগুলি বৃদ্ধি বা হ্রাস করে।
DO লুপের সাধারণ গঠন:
DO index = start, end, step
! লুপের মধ্যে কাজ
END DOindex: লুপের কাউন্টার বা ইনডেক্স।start: লুপের সূচনাঙ্ক (শুরু)।end: লুপের শেষ মান (শেষ)।step: লুপে প্রতি পুনরাবৃত্তিতে ইন্ডেক্সের পরিবর্তন (ঐচ্ছিক, ডিফল্ট হল 1)।
উদাহরণ:
program do_loop_example
implicit none
integer :: i
! DO লুপ ব্যবহার
DO i = 1, 5
print *, 'The value of i is: ', i
END DO
end program do_loop_exampleএখানে:
- লুপটি 1 থেকে 5 পর্যন্ত চলে এবং প্রতি এক ধাপে
iএর মান 1 বৃদ্ধি পায়। আউটপুট হবে:
The value of i is: 1 The value of i is: 2 The value of i is: 3 The value of i is: 4 The value of i is: 5
DO লুপের বৈশিষ্ট্য:
- Start, End, এবং Step নির্দেশ করে লুপের সূচনা, শেষ এবং প্রতি ধাপে কতটা পরিবর্তন হবে তা।
- যদি Step উল্লেখ না করা হয়, তবে ডিফল্টভাবে এটি 1 হিসেবে গণ্য হয়।
- Index একটি সংখ্যা যা প্রতি পুনরাবৃত্তিতে বৃদ্ধি বা হ্রাস হয়।
২. DO WHILE লুপ
DO WHILE লুপ একটি শর্তের ভিত্তিতে কাজ করে। এটি নির্দিষ্ট শর্তটি সত্য (True) থাকলে চলতে থাকে, এবং শর্তটি মিথ্যা (False) হলে লুপটি বন্ধ হয়ে যায়। এই লুপটি সাধারণত এমন পরিস্থিতিতে ব্যবহৃত হয় যখন আপনি লুপের শেষ হওয়ার সময় জানেন না এবং এটি শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে।
DO WHILE লুপের সাধারণ গঠন:
DO WHILE (condition)
! লুপের মধ্যে কাজ
END DO- condition: লজিক্যাল শর্ত যা সত্য (True) হলে লুপ চালানো হয়।
উদাহরণ:
program do_while_example
implicit none
integer :: i
i = 1
! DO WHILE লুপ ব্যবহার
DO WHILE (i <= 5)
print *, 'The value of i is: ', i
i = i + 1
END DO
end program do_while_exampleএখানে:
- লুপটি তখনই চলবে যতক্ষণ পর্যন্ত
i <= 5শর্তটি সত্য। - প্রতি পুনরাবৃত্তিতে
iএর মান 1 বাড়ানো হবে।
আউটপুট হবে:
The value of i is: 1
The value of i is: 2
The value of i is: 3
The value of i is: 4
The value of i is: 5DO WHILE লুপের বৈশিষ্ট্য:
- শর্তটি প্রথমে যাচাই করা হয়, অর্থাৎ শর্তটি যদি শুরুতেই মিথ্যা হয় তবে লুপটি একবারও চলবে না।
- শর্তটি প্রতিটি পুনরাবৃত্তির পর পুনরায় যাচাই করা হয়, এবং যদি এটি সত্য হয় তবে লুপ চালিয়ে যায়।
- এটি সেই ক্ষেত্রে বেশি উপযোগী যখন আপনি জানেন না কতবার লুপটি চলবে, তবে একটি শর্তের ভিত্তিতে চলতে থাকে।
৩. DO লুপ এবং DO WHILE লুপের মধ্যে পার্থক্য
| ফিচার | DO লুপ | DO WHILE লুপ |
|---|---|---|
| লুপ শর্ত | পূর্বনির্ধারিত (start, end, step) | লজিক্যাল শর্ত ভিত্তিক |
| ইতরেশন সংখ্যা | সীমা নির্ধারিত | শর্ত পূর্ণ হওয়া পর্যন্ত চলবে |
| লুপে প্রবেশ | নির্দিষ্ট সংখ্যক বার চলবে | শর্ত পূর্ণ হওয়া পর্যন্ত চলবে |
| স্টেপ | ধাপে ধাপে বৃদ্ধি/হ্রাস | শর্তের উপর ভিত্তি করে |
উপসংহার
ফোরট্রানে DO লুপ এবং DO WHILE লুপ উভয়ই লুপিং অপারেশন পরিচালনা করার জন্য ব্যবহৃত হয়, তবে তাদের ব্যবহারের পদ্ধতিতে কিছু পার্থক্য রয়েছে। DO লুপ যখন আপনি জানেন ঠিক কতবার লুপটি চলবে, তখন ব্যবহার করা হয়, এবং DO WHILE লুপ যখন আপনি একটি শর্তের উপর ভিত্তি করে লুপ চালাতে চান এবং কখন শেষ হবে তা আগে থেকে জানেন না। উভয় লুপই শক্তিশালী এবং কার্যকরী উপায়ে কোডের পুনরাবৃত্তি এবং কার্যক্রম পরিচালনা করতে সাহায্য করে।
ফোরট্রানে EXIT এবং CYCLE এর মাধ্যমে লুপ কন্ট্রোল
ফোরট্রানে লুপ কন্ট্রোলের জন্য EXIT এবং CYCLE ব্যবহৃত হয়, যা লুপের কার্যক্রম নিয়ন্ত্রণ করতে সাহায্য করে। EXIT ব্যবহার করা হয় লুপ থেকে বের হওয়ার জন্য, আর CYCLE ব্যবহার করা হয় বর্তমান পুনরাবৃত্তি (iteration) স্কিপ (skip) করার জন্য এবং পরবর্তী পুনরাবৃত্তি শুরু করার জন্য।
এই দুটি কিওয়ার্ড লুপের ভিতরের কোডের প্রবাহ পরিবর্তন করতে ব্যবহৃত হয় এবং লুপের কার্যকারিতা আরো নিয়ন্ত্রণযোগ্য করে তোলে। নিচে EXIT এবং CYCLE ব্যবহারের উদাহরণ এবং ব্যাখ্যা দেওয়া হল।
১. EXIT (লুপ থেকে বের হয়ে যাওয়া)
EXIT কিওয়ার্ডটি ব্যবহার করা হয় যদি কোনো শর্তের ভিত্তিতে লুপের কার্যক্রম সম্পন্ন করার পর আর কোন প্রয়োজন না থাকে, তখন লুপটি বন্ধ করতে। EXIT একটি নির্দিষ্ট শর্ত পূর্ণ হলে লুপটি তৎক্ষণাত শেষ করে দেয়।
উদাহরণ:
program exit_example
integer :: i
do i = 1, 10
if (i == 5) then
print *, 'Exiting loop at i =', i
exit ! লুপটি বন্ধ করে দেবে যখন i = 5 হবে
end if
print *, 'i =', i
end do
print *, 'Loop exited.'
end program exit_exampleব্যাখ্যা:
- এই প্রোগ্রামে, do loop 1 থেকে 10 পর্যন্ত চলবে, কিন্তু যখন i == 5 হবে, তখন exit কিওয়ার্ডটি কার্যকর হবে এবং লুপটি বন্ধ হয়ে যাবে।
আউটপুট হবে:
i = 1 i = 2 i = 3 i = 4 Exiting loop at i = 5 Loop exited.
২. CYCLE (বর্তমান পুনরাবৃত্তি স্কিপ করা)
CYCLE কিওয়ার্ডটি ব্যবহার করা হয় যদি কোনো শর্তে লুপের বর্তমান পুনরাবৃত্তি (iteration) শেষ করে পরবর্তী পুনরাবৃত্তি শুরু করতে। এটি লুপের সঠিক অংশটি স্কিপ করে পরবর্তী পুনরাবৃত্তিতে চলে যায়।
উদাহরণ:
program cycle_example
integer :: i
do i = 1, 10
if (mod(i, 2) == 0) then
cycle ! যদি i একটি সরল সংখ্যা হয়, তাহলে বর্তমান পুনরাবৃত্তি স্কিপ হবে
end if
print *, 'i =', i
end do
print *, 'Loop completed.'
end program cycle_exampleব্যাখ্যা:
- এই প্রোগ্রামে, do loop 1 থেকে 10 পর্যন্ত চলে এবং mod(i, 2) == 0 হলে অর্থাৎ i যদি even number হয়, তাহলে cycle কিওয়ার্ডটি কার্যকর হবে এবং বর্তমান পুনরাবৃত্তিটি স্কিপ হবে।
আউটপুট হবে:
i = 1 i = 3 i = 5 i = 7 i = 9 Loop completed.
এখানে even numbers যেমন 2, 4, 6, 8, 10, স্কিপ হয়েছে এবং শুধুমাত্র odd numbers প্রিন্ট হয়েছে।
EXIT এবং CYCLE এর ব্যবহারের সুবিধা:
- EXIT ব্যবহারের মাধ্যমে আপনি যখন নির্দিষ্ট শর্তের ভিত্তিতে লুপের কার্যক্রম শেষ করতে চান, তখন এটি ব্যবহৃত হয়।
- CYCLE ব্যবহারের মাধ্যমে আপনি যদি একটি নির্দিষ্ট শর্তের ভিত্তিতে শুধুমাত্র বর্তমান পুনরাবৃত্তি স্কিপ করতে চান এবং পরবর্তী পুনরাবৃত্তিতে যেতে চান, তখন এটি ব্যবহৃত হয়।
ফোরট্রানে EXIT এবং CYCLE কিওয়ার্ডগুলো লুপ কন্ট্রোলকে আরও সহজ এবং শক্তিশালী করে তোলে, যা প্রোগ্রামের কার্যক্রম নির্ধারণে সহায়ক।
Read more