المطلوب
إستخدم الحلقات لطباعة الشكل التالي
كود الجافا
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
لطباعة الرمز *
ثمانية مرات.