For循環詳解


for語句

學過c語言都對循環結構不陌生,尤其是for循環,他是C語言中最有特色的循環語句,使用最為靈活。

形式

結構:for(表達式1;表達式2;表達式3){循環體結構}

每部分的作用

表達式1:一般作為循環變量賦初始值;
表達式2:循環繼續的條件,即能判斷出真假的條件,一般為關系表達式;
表達式3:用於循環變量的的改變,可加=加法,可減法.

執行順序

(1)求解表達式1(只執行一次);
 (2) 求解表達式2,如果其值非0,執行表達式3;否則不進入,退出
(3) 執行循環體語句,並求解表達式3,然后轉向表達式2;
(4)執行for語句的下一條語句.

說完了基本概念,來看看怎么用法

例子:求1-100之間所有整數的累加和?

     var sum=0;
     for(var i=1;i<=100;i++){sum+=i;} 

是不是覺得太簡單,那我們來簡化一下代碼

根據for循環語句的執行順序,可以把條件每次進入循環體之前都會先執行並且判斷。可以改為

    for(var i=0,sum=0;i++<100;) sum+= i;//如果循環語句只有一條可以不寫大括號

如果覺得不過癮,其實還可以在簡化

我們知道循環的第三部分,就是變量變化部分,他是在每次循環完成語句塊后執行的內容,那么就可將sum寫在第三部分

   for(var i=0,sum=0;i<=100;sum+=i,i++);

for 循環的變體的終極-省略三個表達式

    var i=1,sum =0;//相當於表達式1
    for(;;)
    if(i<=100){sum+=i;i++}//相當於表達式2
    else break;//相當於表達式3

說完了for循環的便捷之處,就不難理解說for循環的強大之處,但是並不是所有的循環都用for循環,根據實際情況而定,選取最便捷的方法。比如看下面的需求:

例子:將自然數反序列輸出 12345 ---> 54321

   var a = 12345;
    var i; //末位
    var t=0; //反序列
    while(a>0){
        i=parseInt(a%10);
        t = parseInt(t*10 + i);
        a = parseInt (a/10);
   }
    console.log(t)

這里為什么選擇while,而不是for了呢,因為這是5位數,要是幾十位我們也不知道執行次數,一眼看不出來,執行次數,while比較合適


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM