迴圈結構,理念,邏輯

2021-08-04 14:55:37 字數 3461 閱讀 5199

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...