Dart প্রোগ্রামিং ভাষায় Control Flow Statements (নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস) হল কোডের কার্যক্রমের নিয়ন্ত্রণের জন্য ব্যবহৃত উপাদান। এগুলি শর্ত, লুপ এবং অন্যান্য নিয়ন্ত্রণ কাঠামো ব্যবহার করে প্রোগ্রামের কার্যক্রম নির্ধারণ করে। Dart-এ সাধারণ নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস হল: if, else, switch, for, while, এবং do-while।
1. if Statement
if স্টেটমেন্ট একটি শর্ত পরীক্ষা করে এবং শর্তটি সত্য হলে একটি ব্লক সম্পাদন করে।
void main() {
int age = 18;
if (age >= 18) {
print("You are an adult."); // Output: You are an adult.
}
}
2. if-else Statement
if-else স্টেটমেন্ট একটি বিকল্প প্রদান করে; যদি প্রথম শর্ত সত্য না হয়, তবে else ব্লকটি কার্যকর হয়।
void main() {
int age = 16;
if (age >= 18) {
print("You are an adult.");
} else {
print("You are a minor."); // Output: You are a minor.
}
}
3. else if Statement
একাধিক শর্ত পরীক্ষা করার জন্য else if ব্যবহার করা হয়।
void main() {
int score = 85;
if (score >= 90) {
print("Grade: A");
} else if (score >= 80) {
print("Grade: B"); // Output: Grade: B
} else {
print("Grade: C");
}
}
4. switch Statement
switch স্টেটমেন্ট একটি ভেরিয়েবলের মানের ভিত্তিতে বিভিন্ন বিকল্পগুলির মধ্যে নির্বাচন করার জন্য ব্যবহৃত হয়।
void main() {
String fruit = "Apple";
switch (fruit) {
case "Apple":
print("You selected Apple."); // Output: You selected Apple.
break;
case "Banana":
print("You selected Banana.");
break;
default:
print("Unknown fruit.");
}
}
5. for Loop
for লুপ একটি নির্দিষ্ট সংখ্যা পর্যন্ত পুনরাবৃত্তি করতে ব্যবহৃত হয়।
void main() {
for (int i = 0; i < 5; i++) {
print("Count: $i"); // Output: Count: 0, 1, 2, 3, 4
}
}
6. while Loop
while লুপ একটি শর্ত সত্য থাকা পর্যন্ত পুনরাবৃত্তি করে।
void main() {
int count = 0;
while (count < 5) {
print("Count: $count"); // Output: Count: 0, 1, 2, 3, 4
count++;
}
}
7. do-while Loop
do-while লুপ প্রথমে ব্লকটি সম্পাদন করে এবং পরে শর্ত পরীক্ষা করে। ফলে এটি অন্তত একবার কার্যকর হয়।
void main() {
int count = 0;
do {
print("Count: $count"); // Output: Count: 0, 1, 2, 3, 4
count++;
} while (count < 5);
}
Dart প্রোগ্রামিং ভাষায় if, else if, এবং else স্টেটমেন্টগুলি শর্তাধীন লজিক নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়। এগুলি বিভিন্ন শর্ত পরীক্ষা করে এবং শর্ত অনুযায়ী কোডের বিভিন্ন ব্লক কার্যকর করতে সহায়ক।
1. if Statement
if স্টেটমেন্ট একটি শর্ত পরীক্ষা করে এবং যদি শর্তটি সত্য (true) হয়, তবে নির্দিষ্ট কোড ব্লকটি কার্যকর হয়।
উদাহরণ:
void main() {
int age = 20;
if (age >= 18) {
print("You are an adult."); // Output: You are an adult.
}
}
2. else Statement
else স্টেটমেন্ট if এর পর ব্যবহার করা হয় এবং এটি সেই কোড ব্লকটি কার্যকর করে যা if শর্তটি মিথ্যা (false) হলে কার্যকর হয়।
উদাহরণ:
void main() {
int age = 16;
if (age >= 18) {
print("You are an adult.");
} else {
print("You are a minor."); // Output: You are a minor.
}
}
3. else if Statement
একাধিক শর্ত পরীক্ষা করার জন্য else if ব্যবহার করা হয়। এটি একটি শর্ত মিথ্যা হলে পরবর্তী শর্তটি পরীক্ষা করে।
উদাহরণ:
void main() {
int score = 85;
if (score >= 90) {
print("Grade: A");
} else if (score >= 80) {
print("Grade: B"); // Output: Grade: B
} else if (score >= 70) {
print("Grade: C");
} else {
print("Grade: D");
}
}
4. সমন্বিত উদাহরণ
এখন আমরা if, else if, এবং else স্টেটমেন্টগুলিকে একসাথে ব্যবহার করার একটি উদাহরণ দেখব।
void main() {
int marks = 75;
if (marks >= 90) {
print("Grade: A");
} else if (marks >= 80) {
print("Grade: B");
} else if (marks >= 70) {
print("Grade: C"); // Output: Grade: C
} else if (marks >= 60) {
print("Grade: D");
} else {
print("Grade: F");
}
}
Dart প্রোগ্রামিং ভাষায় switch case স্টেটমেন্ট একটি শক্তিশালী নিয়ন্ত্রণ কাঠামো, যা একাধিক শর্তের মধ্যে নির্বাচন করার জন্য ব্যবহৃত হয়। এটি একটি ভেরিয়েবলের মানের ভিত্তিতে বিভিন্ন বিকল্পগুলি পরীক্ষা করে এবং নির্দিষ্ট শর্ত পূরণ হলে সংশ্লিষ্ট কোড ব্লক কার্যকর করে।
Switch Case Syntax
switch (expression) {
case value1:
// কোড ব্লক ১
break; // অপারেশন শেষ হলে স্বাভাবিকভাবে বের হতে
case value2:
// কোড ব্লক ২
break;
default:
// ডিফল্ট কোড ব্লক (যদি কোনো শর্ত মেলানো না হয়)
}
উদাহরণ
ধরা যাক, আপনি একটি পরিবর্তনশীলের মান অনুযায়ী দিনের নাম প্রদর্শন করতে চান। এখানে switch case ব্যবহার করা হয়েছে:
void main() {
int day = 3;
switch (day) {
case 1:
print("Sunday");
break;
case 2:
print("Monday");
break;
case 3:
print("Tuesday"); // Output: Tuesday
break;
case 4:
print("Wednesday");
break;
case 5:
print("Thursday");
break;
case 6:
print("Friday");
break;
case 7:
print("Saturday");
break;
default:
print("Invalid day"); // যদি কোনো শর্ত না মেলে
}
}
Switch Case এর কিছু বৈশিষ্ট্য
- ভিন্ন মানের জন্য সঠিক শর্ত:
switch caseএকাধিক শর্ত যাচাই করতে কার্যকরী। breakস্টেটমেন্ট: প্রতিটিcaseব্লকের শেষেbreakব্যবহার করা হয়, যা কোড execution বন্ধ করে এবংswitchব্লক থেকে বেরিয়ে যায়। যদিbreakনা দেওয়া হয়, তবে এটি পরবর্তীcaseগুলির কোডও কার্যকর করবে (fall-through)।defaultকেস: এটি একটি বিকল্প হিসাবে কাজ করে, যখন কোনোcaseমেলে না।
Dart প্রোগ্রামিং ভাষায় Ternary Operator এবং Null-aware Operator শর্ত এবং মান যাচাই করার জন্য কার্যকরী টুল। এগুলি কোডকে সংক্ষিপ্ত এবং পরিষ্কার করতে সাহায্য করে।
1. Ternary Operator
Ternary Operator হল একটি সংক্ষিপ্ত শর্তীয় স্টেটমেন্ট, যা একটি শর্তের ভিত্তিতে দুটি মানের মধ্যে একটি নির্বাচন করতে ব্যবহৃত হয়। এটি সাধারণত ? : সিম্বল দ্বারা প্রকাশ করা হয়।
সিনট্যাক্স:
condition ? expression1 : expression2
- condition: যেটি সত্য (true) অথবা মিথ্যা (false) হতে পারে।
- expression1: যদি শর্তটি সত্য হয়, তবে এটি কার্যকর হবে।
- expression2: যদি শর্তটি মিথ্যা হয়, তবে এটি কার্যকর হবে।
উদাহরণ:
void main() {
int age = 20;
String status = (age >= 18) ? "Adult" : "Minor";
print("Status: $status"); // Output: Status: Adult
}
2. Null-aware Operator
Null-aware Operator Dart এর একটি বৈশিষ্ট্য যা null মানের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি আপনাকে নিরাপদভাবে null চেক করার এবং মান অ্যাক্সেস করার সুবিধা দেয়।
প্রধান Null-aware Operators:
Null-aware Access Operator (?.):
- এটি একটি অবজেক্টের প্রপার্টি বা মেথড অ্যাক্সেস করার সময় ব্যবহার করা হয়, যদি অবজেক্টটি null হয় তবে এটি null ফেরত দেয়, ত্রুটি সৃষ্টি করে না।
void main() {
String? name;
print(name?.length); // Output: null (ত্রুটি হবে না)
}Null-aware Assignment Operator (??=):
- এটি একটি ভেরিয়েবলে মান অ্যাসাইন করার সময় ব্যবহৃত হয়, যদি সেই ভেরিয়েবলের মান null হয়।
void main() {
String? name;
name ??= "Default Name"; // name null হলে সেট হবে
print(name); // Output: Default Name
}Null Coalescing Operator (??):
- এটি একটি ভেরিয়েবলের মান চেক করে এবং যদি সেটি null হয়, তাহলে একটি ডিফল্ট মান প্রদান করে।
void main() {
String? name;
String displayName = name ?? "Guest"; // যদি name null হয়
print(displayName); // Output: Guest
}
Looping structures (লুপিং স্ট্রাকচারস) Dart প্রোগ্রামিং ভাষায় একটি বিশেষ ধরনের নিয়ন্ত্রণ কাঠামো, যা নির্দিষ্ট সংখ্যক বার কোডের একটি ব্লক কার্যকর করতে ব্যবহৃত হয়। Dart-এ প্রধান তিনটি লুপিং স্ট্রাকচার হল: for, while, এবং do-while। নিচে প্রতিটি লুপের বিস্তারিত আলোচনা করা হলো।
1. for Loop
for লুপটি একটি নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। এটি সাধারণত একটি কাউন্টার ভেরিয়েবল দিয়ে কাজ করে।
সিনট্যাক্স:
for (initialization; condition; increment/decrement) {
// কোড ব্লক
}
উদাহরণ:
void main() {
for (int i = 0; i < 5; i++) {
print("Count: $i"); // Output: Count: 0, 1, 2, 3, 4
}
}
2. while Loop
while লুপটি একটি শর্ত সত্য (true) থাকা পর্যন্ত পুনরাবৃত্তি করে। এটি শর্তটি প্রথমে পরীক্ষা করে এবং তারপর কোড ব্লকটি কার্যকর করে।
সিনট্যাক্স:
while (condition) {
// কোড ব্লক
}
উদাহরণ:
void main() {
int count = 0;
while (count < 5) {
print("Count: $count"); // Output: Count: 0, 1, 2, 3, 4
count++;
}
}
3. do-while Loop
do-while লুপটি প্রথমে কোড ব্লকটি কার্যকর করে এবং তারপর শর্তটি পরীক্ষা করে। এর ফলে এটি অন্তত একবার কার্যকর হয়।
সিনট্যাক্স:
do {
// কোড ব্লক
} while (condition);
উদাহরণ:void main() {
int count = 0;
do {
print("Count: $count"); // Output: Count: 0, 1, 2, 3, 4
count++;
} while (count < 5);
}
তুলনা
| লুপের ধরণ | কিভাবে কাজ করে | অন্তত একবার কার্যকর হয়? |
|---|---|---|
for | একটি নির্দিষ্ট সংখ্যক বার চলমান | না |
while | শর্ত সত্য থাকলে চলমান | না |
do-while | প্রথমে চলমান এবং পরে শর্ত যাচাই | হ্যাঁ |
Read more