لدي تساَؤل في تطبيق الحلقة For في أحد الأسئلة ..

من خلال الحلقة for ..

أنشئ حلقة تطبع لك جميع الأرقام من 1 إلى 10.

الإجابة كانت بهذا الشكل ..

و الناتج كما هو معروف لدي الجميع سيكون كالتالي ..

ولكن هذه النتيجة ليست ما أتطلع اليه فأنا أريد الناتج بهذا الشكل ..

ولكن الشرط الوحيد الذي أريد تطبيقه هو عدم وجود فاصلة بعد الرقم 10.

هل هذا الأمر ممكن أم مستحيل منطقيا من خلال الحلقة (for) فقط .. ؟


التعليق السابق

ولما لا يستخدم الشروط المختصرة

for(int counter = 1; counter <= 10; counter = counter+1) {
  System.out.print(counter + (counter < 10 ? ", " : ""));
}
  • على ما أظن أنه سؤال في منهج دراسي يضيق الشروط ليبحث الطالب عن حلول أخرى ليصقل الطلاب مهارات حل المشكلات البرمجية، فشرط عدم استخدام الشروط شرط متعمدم حتى لا يلجأ الطالب لاستخدامه في الحل.

لا أرا ذالك ، السؤال هو طباعة من 1 إلى 10 وهذا سؤال يطرح للمبتدئين للتدريب على الحلقات

وأنت استخدمت char وكود الرمز وعمليات معقدة وهذا غير متوقع من مبتدأ

  • هذا ما اعتقدته من تأكيد @mohamed_el_dawansy على عدم استخدام الشروط أو تعريف متغيرات أو حتى الطباعة خارج الحلقة.

أرجو منك شرح الشروط المستخدمة داخل دالة الطباعة :)

ما كتبته مكافيء للكود التالي

for(int counter = 1; counter <= 10; counter = counter+1) {
  String str;
  if (counter < 10) {
    str = ",";
  } else {
    str = "";
  }
  System.out.print(counter + str);
}

وهذه الطريقة تسمى الشروط المختصرة (short if) وصيغتها كالتالي

x = (cond ? valueIfCondIsTrue : valueIfCondIsFalse);