المسألة
في الشرائح نقرأ 20 عددًا باستخدام Scanner ثم نحسب متوسطها. نحتاج sum للمجموع وcnt لعدد القيم التي قرأناها.
Scanner, Sum & Average
في الشرائح نقرأ 20 عددًا باستخدام Scanner ثم نحسب متوسطها. نحتاج sum للمجموع وcnt لعدد القيم التي قرأناها.
نقرأ قيمة بـ nextDouble()، نضيفها إلى sum، ثم نزيد cnt. بعد اكتمال العدد المطلوب نحسب sum / cnt.
يبدأ المثال بثلاث قيم بدل 20 حتى يكون التتبع قصيرًا. يقرأ Scanner النص الجاهز داخل الكود بدل لوحة المفاتيح. المدخلات هنا أعداد صحيحة محددة، لكنه يقرأها كقيم double مثل مثال الشرائح.
تصحيح مهم في الشريحة 30: متغير cnt مُعلن داخل رأس for ثم استُخدم بعدها، وهذا لا يُترجم. أعلناه خارج الحلقة في النسخة المصححة حتى يبقى متاحًا لحساب المتوسط. ويمكنك مقارنة صيغ الحلقات من القائمة.
java.util.Scanner kb = new java.util.Scanner("10 20 30");
int total = 3;
int cnt = 0;
double sum = 0;
while (cnt < total) {
double x = kb.nextDouble();
sum += x;
cnt++;
}
System.out.println("The Average is " + sum / cnt);total = 3.sum = 10 وcnt = 1.sum = 60 وcnt = 3، فنخرج من الحلقة.20.0. لو غيّرت total، وفّر عددًا كافيًا من القيم في Scanner input.المتوسط هو المجموع مقسومًا على عدد القيم، وليس آخر قيمة قرأناها. واحتفظ بـ cnt في النطاق الذي تحتاجه بعد الحلقة؛ سنفصّل Scope في مرحلة for.
عدّل القيم داخل نص Scanner، وعدّل total. جرّب 10 و20 و30، ثم 5 و5 و5. اختر صيغة Loop للمقارنة.
محاكاة لهذا المثال المحدد، وليست تشغيلًا لكود Java عشوائي.