2019年2月13日 星期三

(05)JavaScript 計次執行的for敘述

計次執行的for敘述
當我們知道迴圈必須執行的次數時,for迴圈敘述就是最好的迴圈敘述,要使用for迴圈敘述就必須使用一個控制變數來決定for敘述要執行的次數,其格式如下:
  1. for  (計次變數=初值 ; 終止迴圈條件 ; 步進值)
  2.       {要重複執行的敘述區塊}
由上列格式中可得知,for敘述可以幫我們建立一個迴圈,我們只要決定計次變數的起始值與終止回全條件就可以決定迴圈重複的次數,例如:
  1. for (x=0 ; x<10 ;  x++)
  2. {
  3. y=y+x;
  4. }
在上例中,最重要的一個地方就是變數X,它在迴圈中是扮演一個計數器的角色,而計數範圍從0到9,所以在『{}』中的敘述區塊將會被執行10次,因此我們可對for迴圈敘述分析如下。
1. 第一次執行迴圈時,變數X被指定為起始值。
2. 執行迴圈前,變數X都會先進行終止迴圈條件的檢驗,若條件是不成立,則結束迴圈,否則就繼續執行迴圈內的敘述。
3. 執行過迴圈後,變數X的值將會加上步進值(1)。
      注意!!
X++的意思就等於 x=x+1 ,也就是每次迴圈執行後就自動將變數x的值加1。



for迴圈敘述的步進值設定一定要給,如果我們沒有指定步進值將會造成程式的錯誤,在上例中,我們利用『x++』將步進值的大小就預設為(1),也就是說變數x會在執行過迴圈後自動加(1)。
  1. for (x=1 ; x<10 ;  x=x+2)
  2. {
  3. y=y+x;
  4. }
請問您:上例for迴圈敘述結束後,變數y等於多少?絕對不是55喔!
在我們這個例子中變數X被指定為起始值1,也就說變數X一開始是1,可是每執行一次迴圈後變數X並不是加1喔!而是加2,所以Y=1+3+5+7+9,答案應該是25。


For迴圈敘述不僅可以是遞增迴圈,也可以是遞減增迴圈,其格式如下:
  1. for  (計次變數=初值 ; 終止迴圈條件 ; 步進值)
  2.       {要重複執行的敘述區塊}
奇怪!遞減迴圈跟遞增迴圈格式不是一樣嗎?格式是一樣,不過內容可不同囉!遞減敘述的起始值是計次變數的最大值,而判斷是否脫離迴圈的終止迴圈條件的敘述就變成:計次變數值 < 終止值,同時:步進值一定要設定,並且步進值必須是”減”而不是”加”!例如:
  1. for (x=10 ; x>0 ;  x--)
  2. {
  3. y=y+x;
  4. }

實做學習
計算1x2x……100,並將計算結果顯示於網頁中。
  1. <BODY>
  2. 1x2x……100的答案是:
  3. <Script LANGUAGE="JavaScript">
  4. y=1;
  5. for (x=1 ; x<=10;  x++)
  6. {
  7. y=y*x;
  8. }
  9. document.write(y)
  10. </Script>
  11. </BODY>
首先我們將變數y的值設為1,所以「y= y *1*2x…10」等於「y= 1*2*……y」,因此「y= 1*2*……10」就等於「y= 1」、「y= y*2」、「y= y*3」。。。「y= y*10」連續運算的結果,所以使用for敘述將是最佳選擇。

實做學習
試撰寫一JavaScript,使網頁中出現下圖之畫面。
  1. <Script LANGUAGE="JavaScript">
  2. for (x=1 ; x<=5;  x++)
  3. {
  4. for (y=1 ; y<=x;  y++)
  5. {
  6. document.write("※");
  7. }
  8. document.write("<br>");
  9. }
  10. </Script>
  1. <Script LANGUAGE="JavaScript">
  2. for (x=5 ; x>=1;  x--)
  3. {
  4. for (y=x ; y>=1;  y--)
  5. {
  6. document.write("※");
  7. }
  8. document.write("<br>");
  9. }
  10. </Script>





沒有留言:

張貼留言