【連載】(循環執行語句while和if)樂創DIY C語言講義​——3.8節(3)

2021-02-16 樂創客

文 | Edward

2 循環執行語句

計算機有一個強大的能力,快速地重複執行某一計算,這種重複計算多次的方法,是通過軟體中的循環執行語句去實現的。C語言中實現循環語句結構的方式有三種,第一種為「for」循環,第二種為「while」循環,第三種為「do……while」循環。不管是那種循環,其循環的方式都是類似的,即在某一條件成立的情況下(為True,或者非0),某一範圍內的某條或某幾條語句就會被一次循環執行,循環執行語句的示意如圖3-8-7所示。

                           

圖3-8-7 循環執行語句

 

(1)while循環

while語句的一般使用形式為:

while(判斷條件)

{

    執行語句;

}

其中判斷條件可以為表達式,也可以是一個變量,只要表達式或者變量不為0,那麼while後面的執行語句將一直被循環執行。如果while條件後面只跟隨一句執行語句,那麼while後面的一對「{}」可以不加。

例如,當我們需要連續列印出1到100的時候,用while語句即可輕鬆實現,其實現代碼如圖3-8-8所示。

圖3-8-8 while循環列印

圖3-8-8代碼中,i定義完成之後,賦初值為1,「i <= 100」是一個判斷條件,只要這個表達式為1,即條件成立,那麼代碼就一直會把「i」列印出來,而變量i每次在列印完成之後,就對自己加1,這樣,當執行99次之後,i=100,此時「i <= 100」這個條件還是成立,進而再執行一次「i+1」,此時i=101了,再去判斷「i<=100」已經不成立了,因此while循環最終退出。

當然,C語言在設計之初就設計了循環的退出機制,「continue」和「break」就是循環退出機制的兩個關鍵詞。這兩個關鍵詞雖然都可以使while循環中斷退出,但是其效果和功能有著非常大的區別。「break」關鍵詞是讓整個while循環徹底退出,而「continue」關鍵詞是讓本次的循環中斷運行,進而進行下一次while的循環以決定這個循環需不需要繼續執行下去。關於「continue」關鍵詞我們可以做一個簡單的程序來說明一下其功能。如圖3-8-9所示。

圖3-8-9 continue關鍵詞

這個程序的主體和圖3-8-8中的代碼一樣,只不過加了一個判斷條件,當i加到5的時候進行判斷,直接給變量i賦值200,之後再運行continue語句,由於continue語句執行了,因此循環在此處就中斷了,直接進行while條件的判斷,而此時下面的printf語句也就不會被執行了。在while的判斷下,發現此時「i <= 100」這個條件不成立了,因此退出了while循環。

利用while循環和continue的組合,我們還可以做很多有趣的程序,如,找出1~1000中所有能被3整除的整數。程序代碼如圖3-8-10所示。

圖3-8-10 找出1000以內能被3整除的數

而break的語法就是直接退出整個while循環,我們可以寫一個軟體來驗證這個while的用法,做一個鍵盤字符獲取程序,程序平時一直在等待按鍵輸入,並將按下的按鍵列印出來,直到當按下小寫字符「k」的時候,程序列印出goodbye並且退出。如圖3-8-11所示,此時while的判斷條件是一個常數1,因此可以說while在任何情況下都不會退出,但是一旦當獲取到的按鍵為「k」,此時if判斷語句中的條件就成立,運行break語句,最終列印出good bye,並且退出while(1)這個循環。可能做純軟體的讀者會覺得我這裡的while(1)用的非常荒唐,再怎麼樣也要寫一個退出條件比較考究,但是在很多的裸機系統中,就是通過一個while(1)的大循環使晶片裡面的程序連續運行的。

圖3-8-11 按鍵字符判斷

(2)do……while循環

do……while語句,在一些書上也稱作do語句,它很像while語句,只是它的運行條件判斷,要在循環體執行完一次之後再去判斷。所以,這種結構的循環體至少會被運行一次,下面是它的語法。

既然while和do……while的用法很相似,那我們如何在它們之間進行選擇呢?

當需要循環體至少執行一次的時候,選擇do。

比如,還是一個按鍵判斷的程序,當輸入的字符不為小寫字母「k」的時候,將這個數字列印出來,如果是小寫字母「k」就退出程序,列印出good bye。這個程序由於要求我們對輸入的第一個字符就需要判斷,因此在不用break和while(1)的情況下,我們可以直接使用do……while的形式來完成。其代碼如圖3-8-12所示。

圖3-8-12 字符判斷程序

(3)for循環

C語言中,for循環語句是while循環語句的一種簡化方法,for語句的一般形式為:

通過上幾小節的練習,我們發現一個規律,即有限次數的循環程序,一般都會定義一個控制循環次數的變量,而for循環語句中的表達式1為初始化部分,即我們可以對定義的這個控制循環次數變量進行初始化。表達式2為條件部分,當表達式2成立的時候(True,非0),for循環一直運行下去,一旦當表達式2的條件不滿足,則退出for循環。表達式3為調整部分,它在每一次循環體運行完成一遍之後,都會執行表達式3。與while循環一樣,在for語句中,也可以使用break語句和continue語句來中斷循環。

如我們需要找出1~1000中所有能被3整除的整數,除了圖3-8-10中用while循環的程序外,還可以用for語句來實現。如圖3-8-13所示。

圖3-8-13 for語句尋找能被3整除的數

圖3-8-13,for語句後面的三個表達式分別為:

初始條件:i = 1;

判斷條件:i <= 1000;

調整語句:i ++;這裡的i可以根據需求自行調節。

循環控制語句後面我們在實際使用中會頻繁用到,因此後面讓我們來慢慢探索。

相關焦點

  • C語言while語句
    在C語言中,共有三大常用的程序結構:前面講解了順序結構和選擇結構,本節開始講解循環結構。
  • C語言while語句與do-while語句
    一、while語句1.一般形式while(表達式)語句;(1)表達式代表循環條件(2)語句是循環體2.執行流程當循環條件成立的情況下重複執行循環體語句,循環條件不成立時循環結束3.注意的問題(1)while關鍵字後邊的表達式通常是關係表達式或者邏輯表達式(2)如果循環體語句不止一條,
  • 單片機c語言教程:C51循環語句
    在 C 語言中構成循環控制的語句有 while,do-while,for 和 goto 語句。同樣都是起到循環作用,但具體的作用和使用方法又大不一 樣。我們具體來看看。goto 語句這個語句在很多高級語言中都會有,記得小時候用 BASIC 時就很喜歡用這個語句。
  • C語言for循環
    除了while循環,C語言中還有for循環,它的使用更加靈活,完全可以取代while循環。
  • while循環簡介(3)
    使用break退出循環要立刻退出while循環,不再運行循環中餘下的代碼,也不管條件測試的結果如何,可使用break語句。break語句用於控制程序流程,可使用它來控制哪些代碼運行,哪些代碼不執行,從而讓程序按照你的要求執行你的代碼。
  • Python while循環語句詳解
    Python 中,while 循環和 if 條件分支語句類似,即在條件(表達式)為真的情況下,會執行相應的代碼塊。
  • C語言中循環語句的程序設計
    今天,小編我將為大家講述C語言中的循環語句,那什麼是循環語句那,在我們了解這個問題前,我們先要知道,為什麼我們需要循環控制語句。那是因為在日常生活中或是在程序處理的問題中常常遇到需要重複處理的問題。例如,統計群眾的平均年齡等。
  • 3.2.1 JavaScript中while循環語句的使用
    JavaScript中的while循環語句也稱為前測試循環語句,它先測試循環條件是否成立,如果成立則循環,如果不成立則不循環。其語法格式如下:while(表達式){語句組}參數說明:1)表達式:一個包含比較運算符的條件表達式,用來指定循環條件。
  • C語言程序結構3:循環結構
    循環結構可以減少代碼重複書寫的工作量,用來描述重複執行某段算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
  • Python while循環語句的使用
    本篇介紹Python循環語句的使用,文中主要討論while循環語句,使用while循環語句可以解決程序中需要重複執行的操作,本文講解的每個案例中都配有流程圖和代碼說明。通過本篇的學習,可以達成如下目標。
  • Python3中的while循環語句
    循環語句就是不斷重複動作的語句。While循環語句是Python中主要循環結構之一。 其語法形式如下: while test: # test 為真,進入循環體 statements1 # statements 語句塊,可以在這裡嵌套嵌套while循環 if test: break # 跳出整個循環語句,跳出最近的外層循環 if test: continue # 結束本次循環
  • Python循環語句代碼逐行詳解:while、for、break和continue
    循環語句是程序設計中常用的語句之一。任何程式語言都有while循環,Python也不例外。while循環的格式如下所示。1while(表達式):2    …3else:4    …while循環的執行過程:當循環表達式為真時,依次執行while中的語句。直到循環表達式的值為False,程序的流程轉到else語句。其中else子句可以省略,表達式兩側的括號也可以省略。注意:while循環中的else子句也屬於循環的一部分,最後一次循環結束後將執行else子句。
  • while循環語句
    JavaScript循環語句 - while循環循環的概念我們再學習循環之前,先來了解一下循環1.循環就是重複的去做一件事2.循環結構就是程序中一種很重要的結構,其特點是在給定條件成立時,反覆執行某程序段,直到條件不成立時終止。
  • python程式語言內的while循環和break語句的作用與使用
    1、while循環1、作用 根據一定的條件,讓某些語句或某條語句重複的執行 (列印100行的go ) 2、語法 while 真值表達式: 語句2 …… …… 注意:else子句可以省略不寫 3、執行順序 1、先執行真值表達式,返回測試值為布爾類型的值True/False 2、如果真值表達式返回的結果為True,則執行語句1,然後再返回到第一步,進行真值表達式的測試 3、如果真值表達式的測試值為False
  • 單片機C語言教程-基礎語句
    c語言提供了多種語句來實現這些程序結構。本文將介紹這些基本語句及其應用,使讀者對c程序有一個初步的認識,為以後的學習打下基矗  c程序的語句  c程序的執行部分是由語句組成的。程序的功能也是由執行語句實現的。
  • Java循環語句之for循環與while循環
    各位小夥伴們大家好,這次小編要介紹的是,Java循環語句之for循環與while循環。首先,小編來介紹一下什麼是循環語句。循環語句可以在滿足循環條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱為循環語句,當反覆執行這個循環時,需要在合適的時候把循環判斷修改為false結束循環。循環語句主要有for循環,while循環,do…while循環。
  • 流程控制之循環語句while循環語句
    while循環語句while語句也稱條件判斷語句,它的循環方式為利用一個條件來控制是否要繼續反覆執行這個語句。例如count循環體:這是條件表達式成立的情況下,執行的程序代碼。while循環語句的執行過程,如圖1所示。
  • Python基礎-While循環語句
    1. while循環語句作用:實現特定代碼重複執行格式:while 條件: 重複執行的一行或多行代碼>解釋:Python 每次會判斷 while 關鍵字後面的條件是否為真, 如果為真, 則執行 while 下面的一行或多行代碼, 直到不滿足條件, 循環執行結束.
  • 跟我學java編程—Java while循環語句
    while循環的一般語法是:while( 表達式 ) 語句;其中,表達式是循環條件,語句為循環體。while語句的語義是:計算表達式的值,當值為真(非0)時,執行循環體語句,一旦條件為假,就停止執行循環體。
  • C語言:break和continue都是跳出循環,有啥區別?
    一般而言,程序進入循環後,在下一次循環測試之前會執行完循環體內部的所有語句。而continue和break語句可以根據循環體內部的測試結果來忽略一部分循環內容,甚至結束循環。c 語言中循環語句有 3 種:while();        do     while();         for;且 3 種循環都可以使用 continue 和 break 語句對於continue語句,執行到該語句時,會跳過本次迭代的剩餘部分,並開始下一輪迭代;但是若 continue 語句在嵌套循環的內部