در زبان برنامهنویسی دارت (Dart) حلقههای for و while برای تکرار کد و اجرای یک بخش از کد بر اساس یک شرط مشخص مورد استفاده قرار میگیرند.
حلقه for به صورت زیر تعریف میشود:
for (initialization; condition; increment) {
// کدی که باید تکرار شود
}
در اینجا، initialization یک عبارت است که قبل از ورود به حلقه اجرا میشود ( مانند تعریف یک متغیر ) condition یک شرط است که بررسی میشود و در صورت برقراری برنامه وارد بدنه حلقه میشود و increment یک عبارت است که در هر بار تکرار، بعد از اجرای کد بدنه حلقه اجرا میشود (مانند افزایش مقدار یک متغیر). به عنوان مثال، کد زیر یک حلقه for را نشان میدهد که اعداد ۱ تا ۵ را چاپ میکند:
for (var i = 1; i <= 5; i++) {
print(i);
}
حلقه while به صورت زیر تعریف میشود:
while (condition) {
// کدی که باید تکرار شود
}
در اینجا، condition یک شرط است که در هر بار تکرار بررسی میشود و در صورت برقراری، برنامه وارد بدنه حلقه میشود. به عنوان مثال، کد زیر یک حلقه while را نشان میدهد که تا زمانی که مقدار یک متغیر بزرگتر از صفر باشد، اعداد را چاپ میکند:
var i = 5;
while (i > 0) {
print(i);
i--;
}
همچنین در دارت میتوان از حلقه do-while نیز استفاده کرد. این حلقه با حلقه while مشابه است با این تفاوت که در این حلقه، بدنه حلقه حتما حداقل یک بار اجرا میشود و سپس شرط بررسی میشود. در حلقه while، شرط در ابتدای حلقه بررسی میشود و اگر اولین بار شرط برقرار نبود، هیچ باری اجرا نمیشود.
حلقه do-while به صورت زیر تعریف میشود:
do {
// کدی که باید تکرار شود
} while (condition);
در اینجا، بدنه حلقه حتما حداقل یک بار اجرا میشود و سپس شرط condition بررسی میشود. به عنوان مثال، کد زیر یک حلقه do-while را نشان میدهد که اعداد ۱ تا ۵ را چاپ میکند:
var i = 1;
do {
print(i);
i++;
} while (i <= 5);
باید توجه داشت که استفاده از حلقههای مناسب به صورت صحیح، میتواند به بهبود خوانایی و کارایی کد کمک کند. در برخی موارد، استفاده از حلقههای مناسب میتواند به جایگزینی برخی از ساختارهای شرطی و کد نویسی تکراری کمک کند.
در برنامهنویسی اپلیکیشن ها حلقهها برای پردازش دادههای ورودی از فرمها، روتینگ روی روتها، پردازش لیستها و موارد دیگر استفاده میشوند.
در زبان دارت، چند نوع حلقه وجود دارد که در ادامه به آنها اشاره میکنیم:
۱. حلقه for:
for (initialization; condition; increment) {
// کدی که باید تکرار شود
}
این حلقه شبیه به حلقه for در زبانهای دیگر است. ابتدایی سازی، شرط و افزایش برای این حلقه مشخص میشوند. سپس بدنه حلقه تا زمانی که شرط برقرار باشد، تکرار میشود. به عنوان مثال، کد زیر یک حلقه for را نشان میدهد که اعداد ۱ تا ۵ را چاپ میکند:
for (var i = 1; i <= 5; i++) {
print(i);
}
۲. حلقه while:
while (condition) {
// کدی که باید تکرار شود
}
در این حلقه، تا زمانی که شرط برقرار باشد، بدنه حلقه تکرار میشود. به عنوان مثال، کد زیر یک حلقه while را نشان میدهد که اعداد ۱ تا ۵ را چاپ میکند:
var i = 1;
while (i <= 5) {
print(i);
i++;
}
در ادامه به توضیح حلقه do-while میپردازیم.
۳. حلقه do-while:
do {
// کدی که باید تکرار شود
} while (condition);
در این حلقه، بدنه حلقه حتماً یک بار اجرا میشود، سپس تا زمانی که شرط برقرار باشد، تکرار میشود. به عنوان مثال، کد زیر یک حلقه do-while را نشان میدهد که اعداد ۱ تا ۵ را چاپ میکند:
var i = 1;
do {
print(i);
i++;
} while (i <= 5);
تفاوت اصلی حلقه do-while با حلقه while در این است که حتی اگر شرط در ابتدای حلقه اصلی برقرار نباشد، بدنه حلقه do-while حتماً یک بار اجرا میشود.
در کل، استفاده از حلقهها در برنامهنویسی دارت مانند سایر زبانهای برنامهنویسی است. با استفاده از حلقهها، میتوانیم برای یک سری دستورات، تعداد زیادی از دادهها یا متغیرها را بررسی و پردازش کنیم.
چند مثال در زبان برنامهنویسی دارت برای حلقهها میتواند عبارت باشد از:
۱. نمایش اعداد یک تا ده با استفاده از حلقه for:
void main() {
for (var i = 1; i <= 10; i++) {
print(i);
}
}
۲. جستجوی یک عنصر در یک لیست با استفاده از حلقه while:
void main() {
var numbers = [2, 4, 6, 8, 10, 12];
var target = 8;
var index = 0;
while (index < numbers.length) {
if (numbers[index] == target) {
print('Target found at index $index');
break;
}
index++;
}
}
۳. محاسبه مجموع عناصر یک لیست با استفاده از حلقه for-in:
void main() {
var numbers = [1, 2, 3, 4, 5];
var sum = 0;
for (var number in numbers) {
sum += number;
}
print('Sum is $sum');
}
۴. محاسبه تعداد اعداد زوج در یک لیست با استفاده از حلقه for و شرط if:
void main() {
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var count = 0;
for (var number in numbers) {
if (number % 2 == 0) {
count++;
}
}
print('Number of even numbers: $count');
}
۵. نمایش اعداد فیبوناچی با استفاده از حلقه while:
void main() {
var n = 10, t1 = 0, t2 = 1;
print('Fibonacci Series:');
while (n > 0) {
print(t1);
var sum = t1 + t2;
t1 = t2;
t2 = sum;
n--;
}
}
۶. حذف عناصر مشخص از یک لیست با استفاده از حلقه for و شرط if:
void main() {
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var toRemove = [3, 5, 7];
for (var number in toRemove) {
if (numbers.contains(number)) {
numbers.remove(number);
}
}
print('New list: $numbers');
}
۷. نمایش الفبای انگلیسی با استفاده از حلقه for و تبدیل کاراکتر به عدد ASCII:
void main() {
for (var i = 65; i <= 90; i++) {
print(String.fromCharCode(i));
}
}
۸. تولید تمام حالات یک بازی با استفاده از حلقههای for و nested:
void main() {
var suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades'];
var ranks = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Erfan', 'Reza', 'Maryam'];
for (var suit in suits) {
for (var rank in ranks) {
print('$rank of $suit');
}
}
}
حلقهها در دارت به عنوان یکی از اصولیترین ابزارهای برنامهنویسی مورد استفاده قرار میگیرند. این ابزارها برای تکرار دادهها و انجام یکسری عملیات بر روی آنها بکار میروند. در ادامه کاربردهایی از حلقهها در دارت را بررسی میکنیم:
تکرار دادهها: با استفاده از حلقهها میتوانیم دادهها را تکرار کرده و به راحتی بر روی آنها عملیاتی را انجام دهیم. به عنوان مثال، با استفاده از حلقه for میتوانیم یک لیست از اعداد را تکرار کرده و به هر عدد عملیاتی انجام دهیم.
فیلتر کردن دادهها: با استفاده از حلقهها میتوانیم دادههایی را فیلتر کرده و فقط دادههایی که مطابق با شرطی هستند را بررسی کنیم و بر روی آنها عملیاتی را انجام دهیم.
ایجاد الگو: حلقهها میتوانند برای ایجاد الگوهای مختلف بکار روند. برای مثال، میتوانیم با استفاده از حلقهها الگوهای سادهای مانند رسم مثلثها یا مربعها را بسازیم.
انجام عملیات بر روی تعداد زیادی داده: با استفاده از حلقهها میتوانیم بر روی تعداد زیادی داده عملیاتی را انجام دهیم. برای مثال، میتوانیم با استفاده از حلقهها بر روی تعداد زیادی عدد عملیاتی انجام دهیم و نتیجه را نمایش دهیم.