Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

ما هي القيمة الإفتراضيه للمتغير الأول في الحلقات؟

أنا تلاعبت بالكود و بدلاً من أن أكتب i+=1 كتبت هذا الكود لكي أرى الناتج.

for (var i=1; i<=5; i+=i)
{
    write(i + "\n");
}

نتيجة الكود:

1
2
4

أليس من المفترض أن تكون القيمة الأولى في الناتج 2 لأن القيمة الأولى للعداد i هي 1 فيكون 1 + 1 و يصبح 2؟

لكن حقيقه الأمر هو أعطى i على أنها 0 و أصبح 0 + 1 فأصبحت قيمة i النهائية زيادة بواحد و ثم فعل هذا مرة أخرى.

أنا فاهم الكود لكن أتساءل أليس المفترض في النتائج أن يصبح كالتالي؟

2
4

ثم جربت إعطاء العداد i القيمة 0 فأصبحت Infinite Loop و هنا فهمت أنه أعطى 0 كقيمة أولى للعداد i لكن قمت بالتلاعب بالكود مره أخرى و نفذت عملية ضرب فأصبح الكود كالتالي i = i*i يعني المفترض الآن أن 0 * 1 يصبح 0 لكنه أعطانا حلقة لا منتهية بواحد و تعجبت من هذا. في الجمع يعطى القيمة الإفتراضيه بصفر و الضرب يعطى واحد.

هل أنا تفكيري سليم أم هناك خطأ لا أعرفه و آسف على الإطالة و نفع الله بكم و جزاكم خيراً.

تعليقات 1

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.