C語言學習筆記(7)基礎篇--> for循環跳出,嵌套,goto語句


for

  break:跳出結束當前的循環

  

  i=1時進入循環,判斷條件成立,進入if語句,if條件為假略過所控制語句,進入輸出語句,輸出1,。i自增為2后判斷條件,成立進入if語句,if為假略過所控制語句,進入輸出語句,輸出2.i自增為3后判斷條件,成立進入if語句,if條件為假略過所控制語句,進入輸出語句,輸出3.i自增后為4判斷條件,為真進入if語句,此時if語句為真,進入if所控制的語句,執行break語句跳出循環,輸出總結果為123

 continue:結束這一次循環,繼續下一次循環,continue控制循環體內的它下面的語句,continue運行時,下面的語句不執行。

  

  這兩個例子一樣,這里只是把break換成了continue,前面不過多敘述,當i自增后為4時判斷循環條件,成立進入if語句,為真執行continue語句,這里continue控制它下面的所有語句,不做輸出。i自增為5進入判斷循環條件...  結果為1235678910

  記不住的話就親自測試一下

  

  執行完一次循環后讓它隨着打印一次here,看看是不是continue控制下面剩余所有語句

  

  可以看到沒有輸出4和here語句。

eg1:輸出100以內的奇數(包括100)

  

嵌套

  for嵌套:一個for循環體內又包含另一個完整的for循環結構,稱為for循環的嵌套。內嵌的循環中還可以嵌套循環,這樣就形成了多層循環

  

eg2:打印3x3的*符號

  

理解一個考試難度題

  

  首先程序走到第一個for循環,i=0時進入x++語句,執行后x為1。進入第二個for循環語句,j=0時進入if語句,0%2=0,為假,注意,這里為假則不執行continue語句,別弄混,進入if下面的x++,x為2。此時程序還是回到第二個for循環開始的地方,因為第二個for循環的j++后對於循環條件(j<3)來說是成立的,所以下一次執行的是if語句,發現此時j等於1的時候1%2等於1,為真,執行continue語句,下面的x++不執行,j再自增為2,循環條件成立,進入if語句,2%2=0,為假,不執行continue語句,往下執行x++,x為3。j自增為3后判斷條件發現不滿足循環條件了,所以程序要往下執行,外層for(第一層for循環)循環還有語句沒有執行完,就是最下面的x++,執行后x=4。回到外層for,i自增為1,滿足循環條件,繼續往下執行,x++后x為5。進入內層for(第二個for循環)循環,j重新被賦值為0,j=0滿足循環條件,進入if語句判斷...(這里循環和i=0的時候一樣,循環三次)循環后x為7,退出內層循環,再次執行最下面的x++,x為8,回到外層循環,i自增為2,不滿足循環的條件,退出整個循環。進入輸出語句,x的值為8。

  如果這個題不是continue是break,x的結果為6,continue跳出當前繼續下一次循環,break跳出本層循環,只要能理解這里的本層循環指的是什么,嵌套跳出就學會了,自己試試。不懂qq微信問我

  外層循環執行了2次,內層執行3次,總體循環了2x3=6次循環。總體循環執行次數為外循環次數乘以內循環次數。外循環執行一次后,內循環執行3次后直到不滿足循環條件才會退出內循環再次回到外循環,成立則再次進入內循環。還不理解的話就放到編譯器里用調試一步步看。

while循環,do while循環和for循環這三種循環之間可以相互嵌套。

goto語句

  c語言有三個轉移語句,break語句,continue語句和goto語句,作用是改變程序的正常流向

  goto語句一般有兩種用途,與if語句一起構成循環結構,從循環體中跳轉到循環體外。goto是無條件轉移語句

 格式:goto 語句標簽;

  要使用goto語句,你必須在你希望跳轉的語句前面加上語句標簽。語句標簽就是標識符后面加個冒號。包含這些標簽的goto語句可以出現在同一個函數中的任何位置

  一般輕易不使用goto語句,它的無條件轉向容易使人混亂,結構化程序設計語言都是由順序結構,選擇結構,循環結構等構成,goto破壞了這樣的結構,它的表達太過廣泛,不利於后期維護

 

eg3:枚舉題,如何使用一角,兩角和五角的硬幣湊出2元的金額,只要發現出一種結果就跳出循環。

  

  接力break:這里運用一個變量來進行接力break

  

  goto在這里非常合適。就是跳出多層嵌套的循環,由於break語句只影響它的最內層循環,要想立即從深層嵌套的循環中退出只有一個辦法,就是使用goto語句。

 

  


免責聲明!

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



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