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)