50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

بررسی حلقه های for تو در تو

سلام دوستان

در حلقه های for تو در تو به این شکل است که برای i=1 تمام j از یک تا n بررسی می شود و بعد به سراغ i=2 می رود و به همین روال. حالا میشه بگید که آیا کارم در مثال زیر درست است؟ با فرض اینکه می دانیم x چیست. آیا به این شکل بررسی می کند که اول اگر y بین خانه 1 از آرایه اول و x بود و y بین خانه 1 از آرایه دوم و x بود ... و در مرحله بعد اگر y بین خانه 2 از آرایه اول و x بود و y بین خانه 2 از آرایه دوم و x بود ...و الی آخر . آیا for ها در این مثال به این شکل بررسی می کنند؟

for (int i = 1 ; i<=m ; i++)
{
for (int j = 1 ; j<=n ; j++)
{
if (arr1[i] < y < x   &&  arr2[j] < y  < x )
.......
}
}
}
پرسیده شده در 1394/05/06 توسط

4 پاسخ

1

بله حلقه ها همون طور که می خواین کار می کنن فقط یه { اون ته کد اضافه هست.

تصویر زیر عملکرد 2 تا حلقه for تودرتو مثال شما رو نشون می ده:

حلقه های تو درتو
پاسخ در 1394/05/06 توسط
0

این جمله ام که بالا هم گفتم به این شکل نمیشه؟

با فرض اینکه می دانیم x چیست. آیا به این شکل بررسی می کند که اول اگر y بین خانه 1 از آرایه اول و x بود و y بین خانه 1 از آرایه دوم و x بود ... و در مرحله بعد اگر y بین خانه 2 از آرایه اول و x بود و y بین خانه 2 از آرایه دوم و x بود ...و الی آخر . آیا for ها در این مثال به این شکل بررسی می کنند؟

پاسخ در 1394/05/06 توسط
1

با فرض اینکه طول آرایه arr1 برابر 3 باشه و طول آرایه arr2 برابر 5 باشه چرخش for ها به صورت زیر خواهد بود ببینید اگه منظور شما همینه که همون طور که گفتم درسته دیگه:

i=1
1- if (arr1[1] < y < x   &&  arr2[1] < y  < x )
2- if (arr1[1] < y < x   &&  arr2[2] < y  < x )
3- if (arr1[1] < y < x   &&  arr2[3] < y  < x )
4- if (arr1[1] < y < x   &&  arr2[4] < y  < x )
5- if (arr1[1] < y < x   &&  arr2[5] < y  < x )

i=2
6- if (arr1[2] < y < x   &&  arr2[1] < y  < x )
7- if (arr1[2] < y < x   &&  arr2[2] < y  < x )
8-  if (arr1[2] < y < x   &&  arr2[3] < y  < x )
9- if (arr1[2] < y < x   &&  arr2[4] < y  < x )
10- if (arr1[2] < y < x   &&  arr2[5] < y  < x )

i=3
11- if (arr1[3] < y < x   &&  arr2[1] < y  < x )
12- if (arr1[3] < y < x   &&  arr2[2] < y  < x )
13- if (arr1[3] < y < x   &&  arr2[3] < y  < x )
14- if (arr1[3] < y < x   &&  arr2[4] < y  < x )
15- if (arr1[3] < y < x   &&  arr2[5] < y  < x )
پاسخ در 1394/05/07 توسط
1

سلام

نه اینگونه که شما گفتید بررسی نمیشه .

در مرحله ی اول میگه : اگه y بین خونه اول آرایه1 و x بود و بین خونه اول آرایه2 و x بود ، و در مرحله ی بعد اینطوری چک میکنه : اگه y بین خونه اول آریه1 و x بود و بین خونه دوم آرایه2 و x بود

شما میگید در مرحله ی دوم بگه : بین خونه دوم آرایه1 ، که نه اینطور نمیگه ، میگه بین خونه اول آرایه1 و x و بین خونه دوم آرایه2 و x.

که کاملا در جواب بالا هم با مثال تشریح کردن واستون .

پاسخ در 1394/05/19 توسط

پاسخ شما