اذهب إلى المحتوى
  • 0

خطأ في تنفيذ الحلقة while

Eslam Ahmed Soliman Nafea

السؤال

Recommended Posts

  • 0

إذا كان هذا السؤال خاصة بأحد دروس الأكاديمية، في المرات القادمة ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل.
وضعك لفاصلة منقوطة نهاية شرط while يقوم بإيقاف هذه الحلقة ولا يتم تنفيذ ما بداخلها إلا مرة واحدة فقط وتتوقف عن التكرار 

let i = 1;
while (i <= 10);
               ^
{
  if (102 === 0) {
    console.log(i);
  }
  i++;
}

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

let i = 1;
while (i <= 10)
{
  if (102 === 0) {
    console.log(i);
  }
  i++;
}

أيضا هذا الشرط

if (102 === 0)

مستحيل تحقيق هذا الشرط فلا يتم ما بداخله أبدًا فـ 102 مستحيل أن تساوي 0 ، أعتقد أنك تريد طباعة الأرقام الزوجية فقط ليصبح هذا الشرط متغير بناءا علي تغيير قيمة i في كل مرة ويكون الشرط كالأتي

if (i % 2 === 0)

أي أن باقي قسمة الرقم علي 2 تساوي صفر ليكون الكود بالكامل كالأتي 

let i = 1;
while (i <= 10) {
  if (i % 2 === 0) {
    console.log(i);
  }
  i++;
}

والنتيجة له طباعة الأرقام الزوجية مابين 1 و 10

2
4
6
8
10

تأكد أيضا من ربط لملف جافا سكربت مع html بصورة صحيحة 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script src="index.js"></script>
</body>
</html>
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

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

بالنسبة للخطأ الذي تواجهه فهو بسبب وجود شرط if الذي يتحقق من أن (10 % 2 === 0) وهذا الشرط دائمًا صحيح لأنه يعبر عن عملية حسابية ثابتة، حيث ناتج قسمة 10 على 2 هو دائمًا 5 والباقي صفر، مما يجعل هذا الشرط صحيحا دائما.

لذلك فالحلقة while ستعمل 10 مرات، ولكن الشرط في if لا يستخدم قيمة i ولن يكون له أي تأثير حقيقي على سلوك الحلقة، وهذا يعني أن الحلقة ستزيد قيمة i من 1 إلى 10، لكن الشرط في if لا يقوم بأي فحص على قيمة i نفسها.

لذا إذا كنت ترغب في التحقق من شيء يعتمد على i داخل الحلقة، يجب أن تغير شرط if ليستخدم i. على سبيل المثال، إذا كنت ترغب في طباعة القيم الزوجية فقط من 1 إلى 10، يجب أن يكون الشرط كالتالي:

let i = 1;
while (i <= 10) {
    if (i % 2 === 0) {
        console.log(i);
    }
    i++;
}
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...