天天看點

continue語句隻用于循環語句中_控制語句

控制語句

控制語句分為三類:順序、選擇和循環 + 順序結構 代表“先執行a,再執行b”的邏輯。 + 選擇結構 代表“如果。。。則。。。”的邏輯。 + 循環結構 代表“如果。。。則再繼續。。。”的邏輯。

任何軟體和程式,小到一個練習,大到一個作業系統,本質上都是由“變量、選擇語句、循環語句”組成

選擇結構

選擇結構用于判斷給定的條件,然後根據判斷的結果來控制程式的流程。

主要的選擇結構有:if選擇結構和switch多選擇結構。

  1. if單選擇結構
  2. if-else雙選擇結構
  3. if-else if-else多選擇結構
  4. switch結構

if單選擇結構

文法結構
if
           

​ if語句對布爾表達式進行一次判定,若判定為真,則執行{}中的語句塊,否則跳過該語句塊。流程如圖:

continue語句隻用于循環語句中_控制語句

if-else雙選擇結構

文法結構
if
           

當布爾表達式為真時,執行語句塊1,否則執行語句2。也就是else部分。流程圖:

continue語句隻用于循環語句中_控制語句

if-else if-else多選擇結構

文法結構:
if
           

當布爾表達式1為真時,執行語句塊1;否則,判斷布爾表達式2,當布爾表達式2為真時,執行語句塊2;否則,繼續判斷布爾表達式3······;如果1~n個布爾表達式均判定為假時,則執行語句塊n+1,也就是else部分。流程圖:

continue語句隻用于循環語句中_控制語句

switch多選擇結構

文法結構:
switch 
           

​ switch語句會根據表達式的值從相比對的case标簽處開始執行,一直執行到break語句處或者是switch語句的末尾。如果表達式的值與任一case值不比對,則進入default語句(如果存在default語句的情況)。

​ 根據表達式值的不同可以執行許多不同的操作。switch語句中case标簽在JDK1.5之前必須是整數(long類型除外)或者枚舉,不能是字元串,在JDK1.7之後允許使用字元串(String)。

​ 大家要注意,當布爾表達式是等值判斷的情況,可以使用if-else if-else多選擇結構或者switch結構,如果布爾表達式區間判斷的情況,則隻能使用if-else if-else多選擇結構。

​ switch多選擇結構的流程圖:

continue語句隻用于循環語句中_控制語句

循環結構

循環結構分兩大類,一類是當型,一類是直到型。

當型:

​ 當布爾表達式條件為true時,反複執行某語句,當布爾表達式的值為false時才停止循環,比如:while與for循環。

直到型:

​ 先執行某語句, 再判斷布爾表達式,如果為true,再執行某語句,如此反複,直到布爾表達式條件為false時才停止循環,比如do-while循環。

while循環

文法結構:
`
           

​ 在循環剛開始時,會計算一次“布爾表達式”的值,若條件為真,執行循環體。而對于後來每一次額外的循環,都會在開始前重新計算一次。

​ 語句中應有使循環趨向于結束的語句,否則會出現無限循環–––"死"循環。

do-while循環

文法結構:
`
           

do-while循環結構會先執行循環體,然後再判斷布爾表達式的值,若條件為真,執行循環體,當條件為假時結束循環。do-while循環的循環體至少執行一次。

for循環

文法結構:
`
           

for循環語句是支援疊代的一種通用結構,是最有效、最靈活的循環結構。for循環在第一次反複之前要進行初始化,即執行初始表達式;随後,對布爾表達式進行判定,若判定結果為true,則執行循環體,否則,終止循環;最後在每一次反複的時候,進行某種形式的“步進”,即執行疊代因子。

​ 1. 初始化部分設定循環變量的初值

​ 2. 條件判斷部分為任意布爾表達式

​ 3. 疊代因子控制循環變量的增減

  • for循環在執行條件判定後,先執行的循環體部分,再執行步進。
  • 在for語句的初始化部分聲明的變量,其作用域為整個for循環體,不能在循環外部使用該變量。
  • 編譯器将while(true)與for(;;)看作同一回事,都指的是無限循環。

嵌套循環

在一個循環語句内部再嵌套一個或多個循環,稱為嵌套循環。while、do-while與for循環可以任意嵌套多層。

while
           

break語句和continue語句

break

:在任何循環語句的主體部分,均可用break控制循環的流程。break用于強行退出循環,不執行循環中剩餘的語句。

continue

:continue 語句用在循環語句體中,用于終止某次循環過程,即跳過循環體中尚未執行的語句,接着進行下一次是否執行循環的判定。

注意事項
  1. continue用在while,do-while中,continue 語句立刻跳到循環首部,越過了目前循環的其餘部分。
    1. continue用在for循環中,跳到for循環的疊代因子部分。

帶标簽的break和continue

​ goto關鍵字很早就在程式設計語言中出現。盡管goto仍是Java的一個保留字,但并未在Java語言中得到正式使用;Java沒有goto語句。然而,在break和continue這兩個關鍵字的身上,我們仍然能看出一些goto的影子---帶标簽的break和continue。

​ “标簽”是指後面跟一個冒号的辨別符,例如:“label:”。對Java來說唯一用到标簽的地方是在循環語句之前。而在循環之前設定标簽的唯一理由是:我們希望在其中嵌套另一個循環,由于break和continue關鍵字通常隻中斷目前循環,但若随同标簽使用,它們就會中斷到存在标簽的地方。

​ 在 “goto有害”論中,最有問題的就是标簽,而非goto, 随着标簽在一個程式裡數量的增多,産生錯誤的機會也越來越多。 但Java标簽不會造成這方面的問題,因為它們的活動場所已被限死,不可通過特别的方式到處傳遞程式的控制權。由此也引出了一個有趣的問題:通過限制語句的能力,反而能使一項語言特性更加有用。

繼續閱讀