در مقاله ی آموزشی کار با حلقه های تودرتو در جاوا به ایجاد دو حلقه ی for تودرتو می پردازیم و در این زمینه با ایجاد یک اپلییکشن یک مثال عملی را اعمال می کنیم.
فرض کنید نه تنها می خواهیم بدانیم که چه اعدادی مقسوم علیه های 100 هستند، بلکه می خواهیم بدانیم که چه اعدادی مقسوم علیه های اعداد مثبت کوچکتر یا مساوی 100 هستند. برای انجام این کار، می توانیم 99 حلقه ی دیگر نیز ایجاد کنیم؛ به طوری که اولین حلقه اعدادی را نشان می دهد که مقسوم علیه های 1 هستند؛ و دومین حلقه، اعدادی را نشان می دهد که مقسوم علیه های 2 هستند و همین طور الی آخر. و یا اینکه برای انجام این کار، می توانیم حلقه ی فعلی را در درون یک حلقه ی بیرونی متفاوت قرار دهیم. همان طور که در ادامه این کار را انجام خواهیم داد.
نکته: اگر بخواهیم مقسوم علیه های(divisors) هریک از اعداد، از 0 تا 100 را نمایش دهیم، حلقه ای که عدد تقسیم شونده را تغییر می دهد، حلقه ی بیرونی خواهد بود. برای انجام این کار، به 100 محاسبه ی ریاضی برای هر عدد نیاز داریم؛ به طوری که این، حلقه ی درونی(حلقه ی کوچکتر) را تشکیل می دهد.
برای ایجاد یک حلقه ی تودرتو که مقسوم علیه های زوج را برای هر عدد کوچکتر یا مساوی با 100 نشان می دهد، گام های زیر را دنبال کنید:
1. در صورت لزوم، فایل DivideEvenly.java را در ادیتور متنی خود باز کنید و نام کلاس را به DivideEvenly2 تغییر دهید و آنگاه این کلاس را با نام DivideEvenly2.java ذخیره کنید.
2. یک متغیر جدید را به صورت زیر اضافه کنید:
int number;
3. حلقه ی for تودرتوی زیر را جایگزین حلقه ی for درون کلاس DivideEvenly2.java کنید. حلقه ی بیرونی اعداد را از 1 تا 100 تغییر می دهد. برای هر عدد(number) در حلقه ی بیرونی، حلقه ی درونی از هریک از اعداد مثبت، از 1 تا آن عدد(یعنی number) را مورد استفاده قرار می دهد؛ و بررسی می کند که آیا آن عدد(number) بر v بخش پذیر است یا نه:
for(number = 1; number <= LIMIT; ++number)
{
System.out.print(number + " is evenly divisible by ");
for(var = 1; var <= number; ++var)
if(number % var == 0)
System.out.print(var + " ");
// Display the number and two spaces
System.out.println();
}
4. مطمئن شوید که در انتهای این فایل، سه آکولاد بسته وجود داشته باشد؛ یکی برای حلقه ی for بیرونی، که number را تغییر می دهد، یکی برای متد main()
و یکی برای بستن کلاس. حلقه ی for درونی نیازی به آکولاد ندارد، زیرا حاوی یک دستور خروجی تکی می باشد.
5. فایل را با نام DivideEvenly2.java ذخیره کنید و سپس کامپایل کنید و اپلیکیشن را اجرا کنید. وقتی که اسکرول شدن خروجی به پایان رسید، نتیجه باید مانند تصویر 6.27 باشد.
(تصویر 6.27 : خروجی اپلیکیشن DivideEvenly2، پس از پایان اسکرول)
کارهایی که در جاوا نباید انجام دهید
1. در انتهای یک حلقه ی while، قبل از اینکه بدنه ی حلقه شروع شود، یک سمی کالن قرار ندهید. اگر این کار را انجام دهید، یک بدنه ی خالی برای این حلقه در نظر گرفته می شود.
2. اگر بخواهید در یک حلقه، چندین دستور قرار دهید تا اجرا شوند، فراموش نکنید که آنها را در یک بلوک(یک جفت آکولاد) قرار دهید.
3. این اشتباه را انجام ندهید که برای بررسی داده های نامعتبر، به جای یک حلقه، از یک تصمیم گیری( با if) استفاده کنید. کاربران ممکن است به دفعات زیاد، داده های نامعتبری را وارد کنند، بنابراین استفاده از یک حلقه، بهترین انتخاب برای اعتبار سنجی ورودی ها می باشد.
4. در حلقه ها، ظرافت های موجود در مرزهای مورد استفاده برای توقف عملکرد را نادیده نگیرید. بعنوان مثال، حلقه زدن در حالیکه نرخ سود کمتر از 8% باشد، با حلقه زدن هنگامیکه نرخ سود بیشتر از 8% نباشد، متفاوت است.
5. مراحلی که در یک حلقه قرار دارد و می تواند به خوبی خارج از آن حلقه قرار گیرد، را تکرار نکنید. با انجام این کار، کارایی برنامه بهبود خواهد یافت.