المطلوب
أكتب برنامج لحساب قيمة المتغير S
النهائية.
إجعل البرنامج يظهر لك قيمة العداد و قيمة المتغير S
في كل دورة.
كود الجافا
public class Sum_Odd_And_Even_Numbers { public static void main (String[] args) { int S=0; for (int i=1; i <=10; i++) { if ( i%2 == 1) { System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n"); S = S + i; } else if ( i%2 == 0) { System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n"); S = S - i; } } System.out.print("\n"); } }
شرح الكود
int S=0;
هنا قمنا بتعريف المتغير S
لتخزين المجموع لذلك أعطيناه القيمة 0 كقيمة أولية.
for (int i=1; i <=10; i++) { if ( i%2 == 1) { System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n"); S = S + i; } else if ( i%2 == 0) { System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n"); S = S - i; } }
هنا قمنا بإنشاء حلقة من 1 إلى 10 و في كل دورة تزيد قيمة العداد 1.
في كل دورة يقوم البرنامج بفحص قيمة الـ i
.
يسأل نفسه: هل هي عدد مفرد ؟
إذا لم تكن عدد مفرد ينتقل إلى الشرط الثاني, فيسأل نفسه: هل هي عدد مزدوج؟
- إذا كانت قيمة العداد i
مفردة سيقوم بزيادتها على قيمة الـ S
.
- إذا كانت قيمة العداد i
مزدوجة سيقوم بإنقاصها من قيمة الـ S
.
ملاحظة: في المنطق إذا لم يكن الرقم مفرد فإنه حتماً مزدوج.
إذاً كان بإمكاننا وضع جملة else
بدل جملة الـ else if
.
في الواقع هنا يفضل وضع else
لكي لا تجعل الكمبيوتر يقوم بتحليل قيمة العداد ليعرف إذا كانت مزدوجة أم لا.
لأنها حتماً ستكون مزدوجة إذا قام بفحصها أولاً و لم يجدها مفردة.
إذا أردت أن يكون الكود ممتازاً فعليك كتابة البرنامج بهذه الطريقة:
public class Sum_Odd_And_Even_Numbers { public static void main (String[] args) { int S=0; for (int i=1; i <=10; i++) { if ( i%2 == 1) { System.out.print("S = " +S+ " + " +i+ " = " +(S+i)+ "\n"); S = S + i; } else { System.out.print("S = " +S+ " - " +i+ " = " +(S-i)+ "\n"); S = S - i; } } System.out.print("\n"); } }