السلام عليكم
بفرض اني انشأت متغير وليكن x وقيمته رقم يدخله المستخدم وليكن مثلا 60 ثم جعلت دالة تقوم بتقسيم هذا المتغير على 2 سينتج رقم 30
اريد ان اجعل 30 هو القيمة الجديدة للمتغير x وتتكرر العملية طالما ان x > 1
هناك فرق بين المتغيّرات في الرّياضيّات والمتغيّرات في البرمجة
ففي الرياضيات نقوم بالبحث عن قيمة المتغيّر التي تحقق المعادلة، مثلًا x^2+4x+4=0 وهنا تكون قيمة المتغيّر التي تحقق المعادلة هي 2 أو -2
أمّا في البرمجة، فالمتغيّر هو خانة في الذّاكرة نقوم فيها بتخزين قيمة عدديّة.
ولتخزين قيمة عددية نقوم باستخدام عمليّة الإسناد "="، مثلًا x=5 (سيتم تخزين العدد 5 في المتغير x)
والفرق الأساسي هو أنّه يمكننا تغيير القيمة التي يحتفظ بها المتغيّر في أي مكان في البرنامج.
مثلًا، لو قمنا في مكان آخر من البرنامج بكتابة : "x=x+1" سيتم حفظ قيمة جديدة في المتغير x هي القيمة القديمة +1
ولو كتبنا "x=2*x" يتم حفظ قيمة جديدة في x هي القيمة القديمة *2
وهكذا .. فلو أردت جعل القيمة الجديدة هي القيمة القديمة مقسومة على 2 ، نكتب "x=x/2"
ولو أردت التكرار طالما أن شرطًا ما محقّق، نكتب :
while (condition){
statements
}
وبالنسبة لسؤالك سيكون البرنامج (كما ذكر horizon)
var x=60;
while(x>1){
x=x/2;
alert(x);
}
ولكن احذر من عملية القسمة فقسمة 15 على 2 ستعطيك 7.5 وليس 7، إن أردت عملية قسمة صحيحة، استخدم التابع Math.floor قبل القيام بالإسناد
var x=60;
while(x>1){
x=x/2;
alert(Math.floor(x));
}
بالتّوفيق
التعليقات