تا زمانی که ورودی یک عدد است تکرار کن
اهمیت: 5
یک تابع readNumber
بسازید که تا زمانی که بازدیدکننده یک عدد وارد نکرده باشد، نرود.
خروجی به فرمت عدد باید باشد.
بازدید کننده میتواند با وارد کردن یک خط خالی یا فشردن دکمهی “CANCEL” پردازش را متوقف کند. در این حالت، تابع خروجی null
را میدهد.
[demo]
function readNumber() {
let num;
do {
num = prompt("Enter a number please?", 0);
} while ( !isFinite(num) );
if (num === null || num === '') return null;
return +num;
}
alert(`Read: ${readNumber()}`);
جواب اندکی پیچیدهست که به خاطر این است که باید null
/خالی را هم در نظر بگیریم.
پس ما تا وقتی ورودی را میپذیریم که عدد عادی باشد. هردوی null
(cancel) و خط خالی هم در این شرایط میگنجد، چونکه در فرم عددی صفر هستند.
بعد از اینکه برنامه متوقف شد بایستی null
و مخصوصا خطهای خالی (خروجی null
) را در نظر بگیریم، چون تبدیل آنها به عدد صفر برمیگرداند.