در زبان برنامهنویسی دارت، شما میتوانید از دستورات شرطی if و else برای کنترل اجرای برنامه خود استفاده کنید. در ادامه یک مثال از استفاده از این دستورات در دارت را برای شما توضیح میدهیم:
void main() {
int number = 10;
if (number > 0) {
print('عدد مثبت است.');
} else if (number < 0) {
print('عدد منفی است.');
} else {
print('عدد صفر است.');
}
}
در مثال بالا متغیر number
مقدار 10 را دارد. در خط بعدی، از دستور if برای بررسی این که آیا مقدار number
بزرگتر از صفر است یا خیر، استفاده میشود. اگر شرط ارائه شده در دستور if درست باشد، برنامه بلافاصله به داخل بلاک if وارد میشود و دستور print('عدد مثبت است.')
اجرا میشود. اگر شرط ارائه شده در دستور if غلط باشد، برنامه به بلاک else if منتقل میشود و اگر شرط ارائه شده در آن هم درست نباشد، به بلاک else منتقل میشود. در صورتی که هیچ یک از شرایط if و else if برقرار نباشد، دستور print('عدد صفر است.')
اجرا میشود.
در اینجا توجه کنید که شرطهای if و else if میتوانند هرگونه مقایسهای باشند، مثلاً بررسی برابری دو مقدار، مقایسه دو مقدار از نظر بزرگی و کوچکی، و غیره. به همین ترتیب، شما میتوانید از دستورات شرطی در دارت برای کنترل جریان اجرای برنامه خود استفاده کنید.
همچنین، در دارت میتوانید از دستور switch-case نیز برای کنترل شرایط استفاده کنید. در این حالت، یک عبارت به نام switch و چندین حالت (case) تعریف میشود که در صورت برقراری یک شرط خاص، برنامه به آن حالت منتقل میشود. در زیر مثالی از استفاده از دستور switch-case در دارت آورده شده است:
void main() {
String fruit = 'سیب';
switch (fruit) {
case 'سیب':
print('این یک سیب است.');
break;
case 'پرتقال':
print('این یک پرتقال است.');
break;
case 'انگور':
print('این یک انگور است.');
break;
default:
print('این یک میوه نامشخص است.');
}
}
در مثال قبل متغیر fruit
مقدار “سیب” را دارد. سپس با استفاده از دستور switch، مقدار fruit
بررسی میشود و در صورتی که با یکی از حالتهای case مطابقت داشت، برنامه به آن حالت منتقل میشود و دستورات مربوط به آن حالت اجرا میشوند. در صورتی که هیچ یک از حالتهای case برقرار نباشد، دستورات داخل بلاک default اجرا میشوند.
توجه کنید که در هر یک از حالتهای case باید از دستور break استفاده شود تا برنامه به حالت بعدی منتقل نشود. همچنین، شما میتوانید از دستورات continue و break نیز در دارت برای کنترل حلقهها و شرایط استفاده کنید.
در کل، با استفاده از دستورات شرطی if و else، switch-case، continue و break میتوانید جریان اجرای برنامه خود را در دارت کنترل کنید.
چند مثال دیگر از کنترل شرایط در دارت:
در مثال زیر اعداد یک لیست را بررسی میکنیم و اعدادی را که بزرگتر از ۵ هستند را چاپ میکنیم:
void main() {
List<int> numbers = [3, 6, 9, 2, 4, 7];
for (int number in numbers) {
if (number > 5) {
print(number);
}
}
}
در مثال زیر ابتدا از کاربر یک عدد دریافت میکنیم و سپس بررسی میکنیم که آیا آن عدد فرد است یا زوج. سپس پیغام مربوط به هر یک را چاپ میکنیم:
import 'dart:io';
void main() {
int number;
stdout.write('لطفاً یک عدد وارد کنید: ');
number = int.parse(stdin.readLineSync()!);
if (number % 2 == 0) {
print('$number یک عدد زوج است.');
} else {
print('$number یک عدد فرد است.');
}
}
در مثال زیر ابتدا یک لیست از اسامی ایجاد میکنیم و سپس با استفاده از دستور switch-case، چک میکنیم که آیا هر نام در لیست یک نام خانوادگی دارد یا خیر. سپس پیغام مربوط به هر یک را چاپ میکنیم:
void main() {
List<String> names = ['محمد رضا', 'فاطمه خادم', 'علی موسوی', 'زهرا احمدی'];
for (String name in names) {
switch (name) {
case 'محمد رضا':
print('نام خانوادگی او رضایی است.');
break;
case 'فاطمه خادم':
print('نام خانوادگی او خادمی است.');
break;
default:
print('$name نام خانوادگی ندارد.');
}
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک کاربر وارد شده در سیستم مدیریت کاربران وجود دارد یا خیر. در صورت وجود، پیغام خوش آمدگویی را چاپ میکنیم و در صورت عدم وجود، پیغام خطا را چاپ میکنیم:
void main() {
List<String> users = ['Erfan', 'sara', 'Reza', 'Ahmad'];
String enteredUser = 'Erfan';
if (users.contains(enteredUser)) {
print('خوش آمدید، $enteredUser!');
} else {
print('کاربر وارد شده در سیستم موجود نیست.');
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک شماره تلفن وارد شده صحیح است یا خیر. در صورت صحیح بودن، پیغام تأیید را چاپ میکنیم و در صورت ناصحیح بودن، پیغام خطا را چاپ میکنیم:
void main() {
String phoneNumber = '09123456789';
if (phoneNumber.length == 11 && phoneNumber.startsWith('09')) {
print('شماره تلفن وارد شده صحیح است.');
} else {
print('شماره تلفن وارد شده نامعتبر است.');
}
}
در مثال زیر با استفاده از دستور switch-case، بررسی میکنیم که روز جاری هفته چه روزی است و سپس پیغام مربوط به هر یک را چاپ میکنیم:
void main() {
DateTime now = DateTime.now();
int dayOfWeek = now.weekday;
switch (dayOfWeek) {
case 1:
print('امروز دوشنبه است.');
break;
case 2:
print('امروز سهشنبه است.');
break;
case 3:
print('امروز چهارشنبه است.');
break;
case 4:
print('امروز پنجشنبه است.');
break;
case 5:
print('امروز جمعه است.');
break;
case 6:
print('امروز شنبه است.');
break;
case 7:
print('امروز یکشنبه است.');
break;
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک عدد وارد شده فرد است یا خیر. در صورت فرد بودن، پیغام تأیید را چاپ میکنیم و در صورت زوج بودن، پیغام خطا را چاپ میکنیم:
void main() {
int number = 7;
if (number % 2 == 1) {
print('$number عدد فرد است.');
} else {
print('$number عدد زوج است.');
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک رشته وارد شده خالی است یا خیر. در صورت خالی بودن، پیغام خطا را چاپ میکنیم و در صورت نبودن، رشته را چاپ میکنیم:
void main() {
String text = '';
if (text.isEmpty) {
print('رشته وارد شده خالی است.');
} else {
print('رشته وارد شده: $text');
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک عدد وارد شده منفی است یا خیر. در صورت منفی بودن، پیغام خطا را چاپ میکنیم و در صورت مثبت بودن، پیغام تأیید را چاپ میکنیم:
void main() {
int number = -7;
if (number < 0) {
print('$number عدد منفی است.');
} else {
print('$number عدد مثبت است.');
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا یک رشته وارد شده حاوی حروف بزرگ یا کوچک است یا خیر. در صورت داشتن حروف بزرگ، پیغام تأیید را چاپ میکنیم و در صورت عدم داشتن، پیغام خطا را چاپ میکنیم:
void main() {
String text = 'Hello World';
if (text.contains(RegExp(r'[A-Z]'))) {
print('$text حاوی حروف بزرگ است.');
} else {
print('$text حاوی حروف کوچک است.');
}
}
در مثال زیر با استفاده از دستور if-else، بررسی میکنیم که آیا سن یک فرد وارد شده برای ورود به یک برنامه، مجاز است یا خیر. در صورت بالای ۱۸ بودن سن، پیغام تأیید را چاپ میکنیم و در صورت کمتر بودن، پیغام خطا را چاپ میکنیم:
void main() {
int age = 22;
if (age >= 18) {
print('سن شما $age سال است و میتوانید وارد برنامه شوید.');
} else {
print('سن شما $age سال است و نمیتوانید وارد برنامه شوید.');
}
}
دستورات شرطی در دارت، به برنامهنویسان اجازه میدهد که برنامه خود را به صورت شرطی اجرا کنند. با استفاده از دستورات شرطی، برنامهنویسان میتوانند برنامه خود را به چندین حالت تقسیم کنند و در هر حالت، فرآیندی خاص را اجرا کنند. این قابلیت به برنامهنویسان امکان میدهد تا به آسانی یک برنامه کامل و جامع بنویسند که به شکلی شرطی اجرا شود.
با استفاده از دستورات شرطی، برنامهنویسان میتوانند برنامه خود را با توجه به شرایط مختلف طراحی کنند و برنامه به صورت متفاوتی عمل کند. به عنوان مثال، میتوان با استفاده از دستور if-else، شرایط مختلفی را در یک برنامه بررسی کرد و برنامه را به صورتی طراحی کرد که با توجه به شرایط مختلف، اقدامات متفاوتی را انجام دهد.
استفاده از دستورات شرطی در دارت به برنامهنویسان امکان میدهد که برنامههای پویا، قابل تغییر و بهینهتری را طراحی کنند و این قابلیت به آنها اجازه میدهد که با توجه به شرایط مختلف، برنامه خود را به بهترین شکل ممکن اجرا کنند.
و در پایان رمز موفقیت و یادگیری تمرین و تکرار میباشد.