المطلوب
إستخدم الحلقات لطباعة الشكل التالي
كود الجافا
public class Symbols {
public static void main (String[] args) {
System.out.print("* \n");
for (int i=2; i <=7; i++)
{
System.out.print("* ");
for (int k=1; k <=i-2; k++)
{
System.out.print("- ");
}
System.out.print("* \n");
}
for (int j=1; j <=8; j++)
{
System.out.print("* ");
}
System.out.print("\n");
}
}
شرح الكود
الشكل الذي ننوي رسمه, قمنا بتقسيمه إلى ثلاث أجزاء:
جزء لم نستخدم فيه أي حلقة لرسمه.
جزء إستخدمنا حلقة واحدة لرسمه.
جزء إستخدمنا حلقة واحدة لرسمه.
ملاحظة: كان بإمككنا عدم تجزيء الشكل و التعامل معه كله دفعة واحدة لكننا كنا سنضطر لوضع شرط أو أكثر لنرسم السطر الأول و السطر الأخير.
System.out.print("* \n");
في السطر الأول من الشكل الذي ننوي رسمه لا داعي لوجود أي حلقة لذلك طبعنا الرمز * مباشرةً.
for (int i=2; i <=7; i++)
{
System.out.print("* ");
for (int k=1; k <=i-2; k++)
{
System.out.print("- ");
}
System.out.print("* \n");
}
من السطر الثاني و حتى السطر السابع من الشكل الذي ننوي رسمه. لاحظنا أنه يوجد معادلة ثابتة لرسمه و هي أن عدد الرموز - في كل سطر يساوي قيمة العداد i ناقص 2.
لذلك وجدنا أنه للحصول على هذا الشكل يجب أن نفعل التالي:
نقوم بطباعة الرمز
*في بداية كل سطر.نستخدم الحلقة
kلتحديد كل رمز-سيتم طباعته.نقوم بطباعة الرمز
*في نهاءة كل سطر.
for (int j=1; j <=8; j++)
{
System.out.print("* ");
}
السطر الأخير في الشكل الذي ننوي رسمه, إستخدمنا فيه حلقة واحدة إسمها j لطباعة الرمز * ثمانية مرات.





محرر الويب
نظام الألوان
محول الوحدات
محلل عناوين الشبكات