حلقه while در جاوااسکریپت

درس بعدی ||||| درس قبلی

استفاده از حلقه while بیشتر زمانی استفاده می شود که می خواهیم یکسری عملیات تا برقراری یک شرط خاص تکرار شوند. برای این منظور باید شرط در داخل پرانتز جلوی دستور while نوشته شود. به عنوان مثال کد زیر یک کد ساده از استفاده از while را نشان می دهد:

while(i<=max){
      document.write(i+"<br />");
      i+=2;
             }

در کد فوق حلقه تا زمانی تکرار می شود که مقدار i‌ کمتر از max باشد. کدی که قرار است تکرار شود شامل چاپ محتوای متغیر i هست و به خط بعد می رود. سپس متغیر i دو واحد افزوده می شود. این کار تا زمانی ادامه می یابد که i‌ کمتر از max است.

مثال۱: به کمک حلقه while مقادیر بین min و Max که از ورودی دریافت می شوند بصورت یکی در میان در خروجی چاپ شوند:

<html>
   <head>
       <script type="text/javascript">
            function printNumbers(min,max){
                 
                    var i=min;
                    while(i<=max){
                        document.write(i+"<br />");
                        i+=2;
                    }
            }
            
       </script>
   </head>
   <body onload="printNumbers(eval(prompt('min:')),eval(prompt('max: ')))">

   </body>
</html>

مثال۲: صفحه وبی طراحی کنید که اعدادی از ورودی به صورت نامحدود دریافت شوند و هنگامی که کاربر مقدار * را وارد کرد مجموع اعداد نمایش داده شود.

توضیح: شرطی که جلوی دستور while باید بنویسیم بررسی این است که آیا کاربر کاراکتر * را وارد کرده یا خیر. چنانچه وارد کرده بود مجوع اعداد نمایش داده می شود و در غیر اینصورت عدد جدید با مجموع اعداد وارد شده جمع می شود و مجدد از کاربر درخواست می شود عدد جدیدی وارد کند.

<html>
   <head>
       <script type="text/javascript">
            function printNumbers(){
                
                    var sum=0;
                    var input=prompt("Enter a number (* for finish)");
                    while(input!="*"){
                        
                        sum+=eval(input);
                        var input=prompt("Enter a number (* for finish)");
                    }
                    alert(sum);
            }
            
       </script>
   </head>
   <body onload="printNumbers()">

   </body>
</html>

همانطوریکه مشاهده می شود sum مجموع را دارد و هنگامی که کاربر * را وارد می کد محتوای sum نمایش داده می شود.