第三章-6-循環結構(while循環)


對應書本p82-p83

 

當我們使用for循環時,我們很清楚循環的次數;比如說我們要輸出'前進'5次,編寫程序如下:

 

 

 那如果現在需求變成了 計算1~n之間的整數和,當和大於6000時輸出和;

我們有起始1,但什么時候截止卻不知道(n);當我們不知道一個循環需要執行的次數時,我們就可以使用while循環來完成

 

while循環

-while循環一般結構-

 

 

 while循環在執行時,首先會判斷條件是否為真,如果條件為真,執行一次循環體,然后再次回到while條件判斷,如果還為真,繼續執行循環體;以此類推直到判斷條件為假時退出while語句

=======================================================================================================================

舉幾個例子

 

 

 該程序會輸出 6;執行流程為

#賦i為0

#進入while循環,判斷條件i<5,成立,執行while下的循環體i=i+2,執行后i為2;返回while的條件判斷

#此時i為2,判斷i<5,成立,執行循環體,執行后i為4;返回while的條件判斷

#此時i為4,判斷i<5,成立,執行循環體,執行后i為6;返回while的條件判斷

#此時i為6,判斷i<5,不成立,結束while循環

#執行后續語句,print(i),輸出i的值為6

=======================================================================================================================

 

 

 該程序會輸出0;執行流程為

#賦i初值為0

#進入while循環,判斷條件i<0;不成立,結束while循環

#執行后續語句print(i),輸出0

=======================================================================================================================

回到開頭,計算1~n之間的整數和,當和大於6000時輸出和;顯然我們只需要判斷 sum<6000就行了;成立時繼續加,不成立時就退出循環並輸出和,編寫程序如下:

 

該程序會輸出6105;執行流程為

#賦sum初值為0,i初值為1

#進入while循環,判斷條件sum<6000,為真,進入循環體,將i累加到sum上,i自加1;

#直到判斷sum<6000為假,則結束循環

#輸出sum,此時sum已大於6000

=======================================================================================================================

 

所有的for循環都可以用while循環來表述,讓我們來改寫幾個for循環吧

 

 

 執行流程為

#range(15)生成一個從0到14間隔為1的整數序列,可以簡單的看作[0,1,2....13,14]

#依次將序列中的元素賦值給i並執行循環體中內容

#第一次i=1,print(i)輸出1

#第二次i=2,print(i)輸出2

......

#第n次,i=14,print(i)輸出14

#結束for循環

 

改寫成while:

while循環只需關注到什么時候開始,什么時候結束,怎么變化;

比如我們可以創建一個變量a作為循環控制條件,a的初值應為0,a>14時結束循環,a每次變化幅度為+1,編寫程序如下

 

 

 

 =======================================================================================================================

【思考】請將以下for循環改寫成while循環

---while循環

 

 

 

 =======================================================================================================================

for循環還可以遍歷一個序列中的所有元素

 

 

 該程序依次遍歷了列表list1中的每一個元素並輸出;那么如何用while循環來實現這一功能呢?

 

我們可以構造這樣的結構來提取列表lit1中的元素  list1[索引];顯然,我們只要能夠生成對應的索引就能夠依次取出列表中的元素並輸出

我們知道列表的索引可以是從左到右,從0開始遞增的  ;故while循環的起始為0終止是len(列表)-1

 

 

 固編寫程序如下

 

 

  =======================================================================================================================

你發現了么,while循環條件中的變量一定會在while循環的循環體里變化,因為如果不變化的話,就不會結束while循環,從而陷入到死循環中

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM