5.1迴圈結構的概念:
先看一下生活中的場景:
(1) 食堂阿姨打菜:結果盤子——詢問菜品——打菜——遞迴盤子,重複以上過程,直到所有顧客把菜打完。
以上場景都有乙個共同點:有條件的重複做一件事,每一次做的事情不同,但類似。
程式是為了解決實際問題的,實際問題中存在著重複動作,那麼程式中也應該有著相應的描述,這就是迴圈。
案例:/*方案一*/
var
sum=1+2+3+4+5+6+7+8+9+10;
alert(sum
);
/*方案二*/
var
sum2
= 0;
sum2
+1;
sum2
+2;
sum2
+3;
sum2
+4;
sum2
+5;
sum2
+6;
sum2
+7;
sum2
+8;
sum2
+9;
sum2
+10;
alert(sum2
);
但是這兩種方法的描述方式都不太理想,如果要是加到:10000呢?
注意觀察方法二,他重複的做一件事(將乙個數加到sum2中),每一次做的不同但類似。
我們希望找到乙個更好的方法:
/*方案三:改方案二*/
var
sum3
= 0;
var
n= 1;
while(n
<= 10)
方案三表達的含義和方案二一樣,但是表達的方式要好得多,比如加到10000,只需要把條件n<=10改為n<=10000就行。
5.2while迴圈
while是表示「當······則······」,也就是當某個條件成立時,則一直重複做
while(條件)····先判斷,再迴圈。
do····while(條件) 先迴圈,再判斷。
var
year
=2009;
var
m=142562.75;
var
z=49089.82;
dowhile(
m
>z
);
alert("
中國將會在
"+year
+"
年趕超美國小次老
");
滿足條件,繼續迴圈,不滿足,跳出迴圈。
水仙花:
總結一下迴圈的套路:
(1) 初始化狀態
(2) 迴圈條件
(3) 迴圈體(重複做的事)
(4) 為下次迴圈做準備()
如何去寫迴圈的程式呢?回答四個問題
(1) 初始狀態是怎樣的?
(2) 重複做的條件是什麼?
(3) 重複做什麼
(4) 怎麼過度到下一次迴圈
水仙花數問題
gdp**問題
初始化狀態
num=100
var year
=2009;
var m
=142562.75;
var z
=49089.82;
迴圈條件
num<=999
m
>z
迴圈體var
a=math.floor(num1/100);
var
b=math.floor((num1% 100)/10);
var
c=math.floor(num1%10);
var
sum=math.pow(a,3)+math.pow(b,3)+math.pow(c,3);
if(sum==num1){
alert(num1+"
是水仙花!
");
m
*=0.02+1;
z
*=0.08+1;
為下次循
環做準備
num1
year
案例:計算圓周率:π=(1 - 1/3 + 1/5 - 1/7)*4,最後一項的絕對值小於10-6。
他跟我們之前解決的問題相似:1+2+3+4+····+10的問題很相似,只不過每次加的內容不一樣。
迴圈與邏輯
專案 value 關係運算子 說明 如果左邊的數值大於右的運算元則產生的值為true,否則為false 如果左邊的運算元等於右邊的運算元,則產生的值為true,否則為false 如果兩個運算元互不相等,則返回true,否則返回false 如果左邊的運算元小於 右邊的運算元,則返回true,否則返回f...
邏輯判斷,for迴圈,while迴圈
邏輯判斷,for迴圈,while迴圈 邏輯判斷 控制語法 if 條件 else if 另外乙個條件 else 判斷字串相等的語法 a.equals b if 括號中要填入的其實是乙個布林型別值 布林型別 boolean 布林型別的資料,值只有兩個 true false boolean a true ...
不要為了重用迴圈結構耦合太多邏輯
迴圈結果變數 我們書寫乙個迴圈邏輯的時候,如果迴圈完成後,還有邏輯要執行,需要結果變數來持有結果。string findresult null for string str stringlist 其他 使用findresult 此處只是簡單輸出 system.out.println findresu...