如何使用Java程序控制語句?

Java程序流程控制

流程控制語句是用來控制程序中各語句執行順序的語句,可以把語句組合成能完成一定功能的小邏輯模塊。

程序流程控制的分類

  1. 順序結構
  • 程序從上到下逐行地執行,中間沒有任何判斷和跳轉。
  1. 分支結構
  • 根據條件,選擇性地執行某段代碼。
  • 有if…else和switch-case兩種分支語句。
  1. 循環結構
  • 根據循環條件,重複性的執行某段代碼。
  • 有while、 do…while、 for三種循環語句。
  • 注: JDK1.5提供了foreach循環,方便的遍歷集合、數組元素

順序結構

Java中定義成員變量時採用合法的前向引用
在這裏插入圖片描述

分支結構

if…else語句
if(條件表達式1){
	執行代碼塊1;
}
else if (條件表達式2){
	執行代碼塊2;
}
……
else{
	執行代碼塊n;
}

在這裏插入圖片描述

注意事項
  • 條件表達式必須是布爾表達式(關係表達式或邏輯表達式)、布爾變量
  • 語句塊只有一條執行語句時,一對{}可以省略,但建議保留
  • if-else語句結構,根據需要可以嵌套使用
  • 當if-else結構是“多選一”時,最後的else是可選的,根據需要可以省略
  • 當多個條件是“互斥”關係時,條件判斷語句及執行語句間順序無所謂
  • 當多個條件是“包含”關係時,“小上大下 / 子上父下”
switch-case語句
switch(表達式){
	case 常量1:
	語句1;
	// break;
	case 常量2:
	語句2;
	// break;
	… …
	case 常量N:
	語句N;
	// break;
	default:
	語句;
	// break;
}

在這裏插入圖片描述

注意事項
  • switch(表達式)中表達式的值必須是下述幾種類型之一: byte, short,char, int, 枚舉 (jdk 5.0), String (jdk 7.0);
  • case子句中的值必須是常量,不能是變量名或不確定的表達式值;
  • 同一個switch語句,所有case子句中的常量值互不相同;
  • break語句用來在執行完一個case分支後使程序跳出switch語句塊;如果沒有break,程序會順序執行到switch結尾
  • default子句是可任選的。同時,位置也是靈活的。當沒有匹配的case時,執行default
switch和if語句的對比

if和switch語句很像,具體什麼場景下,應用哪個語句呢?

  • 如果判斷的具體數值不多,而且符合byte、 short 、 char、 int、 String、枚舉等幾
    種類型。雖然兩個語句都可以使用,建議使用swtich語句。因爲效率稍高。
  • 其他情況:對區間判斷,對結果爲boolean類型判斷,使用if, if的使用範圍更廣。
    也就是說, 使用switch-case的,都可以改寫爲if-else。反之不成立。

循環結構

循環語句的四個組成部分:

  1. 初始化部分(init_statement)
  2. 循環條件部分(test_exp)
  3. 循環體部分(body_statement)
  4. 迭代部分(alter_statement)
    在這裏插入圖片描述
for 循環
語法格式
for (①初始化部分; ②循環條件部分; ④迭代部分){
	③循環體部分;
執行過程

①-②-③-④-②-③-④-②-③-④-…-②

注意事項
  • ②循環條件部分爲boolean類型表達式,當值爲false時,退出循環
  • ①初始化部分可以聲明多個變量,但必須是同一個類型,用逗號分隔
  • ④可以有多個變量更新,用逗號分隔
while 循環
語法格式
①初始化部分
while(②循環條件部分){
	③循環體部分;
	④迭代部分;
}
執行過程

①-②-③-④-②-③-④-②-③-④-…-②

注意事項
  • 注意不要忘記聲明④迭代部分。 否則, 循環將不能結束, 變成死循環。
  • for循環和while循環可以相互轉換
do-while 循環
語法格式
①初始化部分;
do{
③循環體部分
④迭代部分
}while(②循環條件部分);
執行過程

①-③-④-②-③-④-②-③-④-…②

注意事項
  • do-while循環至少執行一次循環體。

嵌套循環

將一個循環放在另一個循環體內,就形成了嵌套循環。其中,for ,while ,do…while均可以作爲外層循環或內層循環。

實質上,嵌套循環就是把內層循環當成外層循環的循環體。當只有內層循環的循環條件爲false時,纔會完全跳出內層循環,纔可結束外層的當次循環,開始下一次的循環。

設外層循環次數爲m次,內層爲n次,則內層循環體實際上需要執行m*n次。

特殊關鍵字break、 continue、return的使用

break

  1. break語句用於終止某個語句塊的執行
  2. break語句出現在多層嵌套的語句塊中時,可以通過標籤指明要終止的是哪一層語句塊
    下圖break結束的是label3的語句塊
    在這裏插入圖片描述

continue

  1. continue只能使用在循環結構中
  2. continue語句用於跳過其所在循環語句塊的一次執行,繼續下一次循環
  3. continue語句出現在多層嵌套的循環語句體中時,可以通過標籤指明要跳過的是哪一層循環

return

  1. return:並非專門用於結束循環的,它的功能是結束一個方法。當一個方法執行到一個return語句時,這個方法將被結束。
  2. 與break和continue不同的是, return直接結束整個方法,不管這個return處於多少層循環之內。

注意事項

  1. break只能用於switch語句和循環語句中。
  2. continue 只能用於循環語句中。
  3. 二者功能類似,但continue是終止本次循環, break是終止本層循環。
  4. break、 continue之後不能有其他的語句,因爲程序永遠不會執行其後的語句。
  5. 標號語句必須緊接在循環的頭部。標號語句不能用在非循環語句的前面。
  6. 很多語言都有goto語句, goto語句可以隨意將控制轉移到程序中的任意一條語句上,然後執行它。但使程序容易出錯。 Java中的break和continue是不同於goto的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章