بررسی حلقه های 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 ) ....... } } }
4 پاسخ
بله حلقه ها همون طور که می خواین کار می کنن فقط یه { اون ته کد اضافه هست.
تصویر زیر عملکرد 2 تا حلقه for تودرتو مثال شما رو نشون می ده:
این جمله ام که بالا هم گفتم به این شکل نمیشه؟
با فرض اینکه می دانیم x چیست. آیا به این شکل بررسی می کند که اول اگر y بین خانه 1 از آرایه اول و x بود و y بین خانه 1 از آرایه دوم و x بود ... و در مرحله بعد اگر y بین خانه 2 از آرایه اول و x بود و y بین خانه 2 از آرایه دوم و x بود ...و الی آخر . آیا for ها در این مثال به این شکل بررسی می کنند؟
با فرض اینکه طول آرایه 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 )
سلام
نه اینگونه که شما گفتید بررسی نمیشه .
در مرحله ی اول میگه : اگه y بین خونه اول آرایه1 و x بود و بین خونه اول آرایه2 و x بود ، و در مرحله ی بعد اینطوری چک میکنه : اگه y بین خونه اول آریه1 و x بود و بین خونه دوم آرایه2 و x بود
شما میگید در مرحله ی دوم بگه : بین خونه دوم آرایه1 ، که نه اینطور نمیگه ، میگه بین خونه اول آرایه1 و x و بین خونه دوم آرایه2 و x.
که کاملا در جواب بالا هم با مثال تشریح کردن واستون .