循環結構

While循環 

是表示“當.....則......”,也就是當某個條件成立時,則一直重複做。

(調試工具查看程序運行軌跡以及變量的變化情況):

do while 和while的區別:dowhile  是先做一次然後再循環,while是先循環然後再做。

案例:在100到999的範圍內找出哪些數是水仙花數

var num = 100;
while (num <= 999) {
    var num100 = Math.floor((num % 100) / 10);
    var num10 = Math.floor((num % 100) / 10);
    var num1 = Math.floor((num % 10));
    var sum = Math.pow(num100, 3) + Math.pow(num10, 3) + Math.pow(num1, 3);
    if(sum == num ) {
        alert(num+"是水仙花數");
    }
    num++;
}

案例二:2009年,美國GDP爲142562.75美元,中國爲49089.82美元,假定美國的GDP增長率爲2%,中國的GDP爲8%,問多少年中國的GDP能夠超過美國?

var  year  = 2009;
var  usa  = 142562.75;
var  china = 49089.82;
  do{
      usa = ((usa*0.02)+usa);
    china = ((china* 0.08)+china);
      year++;
} while (china < usa);
   alert(year+"年,中國("+china+")將超過美國("+usa+"");

循環的套路:

(1)   初始狀態

(2)   循環條件

(3)   循環體(要重複做的事情)

(4)   爲下次循環作準備()

寫程序之前回答四個問題:

(1)   初始狀態是怎樣的?

(2)   重複做的條件是什麼?

(3)   重複做的事情是什麼?

(4)   怎麼過度到下一次循環?

 

 

水仙花數問題

GDP預測問題

初始狀態

var num = 100;

 

var year = 2009;
var usa = 142562.75;
var china = 49089.82;

 

循環條件

num <= 999

usa>china

循環體

var num100 = Math.floor((num % 100) / 10);
    var num10 = Math.floor((num % 100) / 10);
    var num1 = Math.floor((num % 10));
    var sum = Math.pow(num100, 3) + Math.pow(num10, 3) + Math.pow(num1, 3);
    if(sum == num ) {
        alert(num+"是水仙花數")
  
   usa = ((usa*0.02)+usa);
  china=((china*0.08)+china);
  
  

 

爲下次循環作準備

num++
year++

案例3:計算圓周率 π=(1-1/3+1/5-1/7+.....)*4

最後一項的絕對值小於10-6

分析:將公式稍微變化一下:(+1/1)+(-1/3)+(+1/7)

我們可以將每一項拆分爲:

t=符號*1/分母

1初始狀態是怎樣的?

sum=0;

t=1;

sign=1

deno:1

2重複做的條件是什麼?

|t|>=10-6

3重複做的事情是什麼?

sum +=t

4怎麼過度到下一次循環?

sign= -sign

deno +=2

t = sign*1/deno

<script>
    var sum = 0;//累加和
   
var t = 1;//每一項分數
   
var sign = 1;//運算符號
   
var deno = 1;//分母
   
while(Math.abs(t) >= 1e-6){
        sum+=t;
        sign=-sign;
        deno+=2;
        t= sign * 1/deno;
    }
    var π=sum*4;
    alert(π);
</script>


發佈了40 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章