您好,登錄后才能下訂單哦!
本篇內容介紹了“Java的流程控制語句有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
01、if-else 相關
1)if 語句
if 語句的格式如下:
if(布爾表達式){ // 如果條件為 true,則執行這塊代碼 }
畫個流程圖表示一下:
來寫個示例:
public class IfExample { public static void main(String[] args) { int age = 20; if (age < 30) { System.out.println("青春年華"); } } }
輸出:
青春年華
2)if-else 語句
if-else 語句的格式如下:
if(布爾表達式){ // 條件為 true 時執行的代碼塊 }else{ // 條件為 false 時執行的代碼塊 }
畫個流程圖表示一下:
來寫個示例:
public class IfElseExample { public static void main(String[] args) { int age = 31; if (age < 30) { System.out.println("青春年華"); } else { System.out.println("而立之年"); } } }
輸出:
而立之年
除了這個例子之外,還有一個判斷閏年(被 4 整除但不能被 100 整除或者被 400 整除)的例子:
public class LeapYear { public static void main(String[] args) { int year = 2020; if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { System.out.println("閏年"); } else { System.out.println("普通年份"); } } }
輸出:
閏年
如果執行語句比較簡單的話,可以使用三元運算符來代替 if-else 語句,如果條件為 true,返回 ? 后面 : 前面的值;如果條件為 false,返回 : 后面的值。
public class IfElseTernaryExample { public static void main(String[] args) { int num = 13; String result = (num % 2 == 0) ? "偶數" : "奇數"; System.out.println(result); } }
輸出:
奇數
3)if-else-if 語句
if-else-if 語句的格式如下:
if(條件1){ // 條件1 為 true 時執行的代碼 }else if(條件2){ // 條件2 為 true 時執行的代碼 } else if(條件3){ // 條件3 為 true 時執行的代碼 } ... else{ // 以上條件均為 false 時執行的代碼 }
畫個流程圖表示一下:
來寫個示例:
public class IfElseIfExample { public static void main(String[] args) { int age = 31; if (age < 30) { System.out.println("青春年華"); } else if (age >= 30 && age < 40 ) { System.out.println("而立之年"); } else if (age >= 40 && age < 50 ) { System.out.println("不惑之年"); } else { System.out.println("知天命"); } } }
輸出:
而立之年
4)if 嵌套語句
if 嵌套語句的格式如下:
if(外側條件){ // 外側條件為 true 時執行的代碼 if(內側條件){ // 內側條件為 true 時執行的代碼 } }
畫個流程圖表示一下:
來寫個示例:
public class NestedIfExample { public static void main(String[] args) { int age = 20; boolean isGirl = true; if (age >= 20) { if (isGirl) { System.out.println("女生法定結婚年齡"); } } } }
輸出:
女生法定結婚年齡
02、switch 語句
switch 語句用來判斷變量與多個值之間的相等性。變量的類型可以是 byte、short、int、long,或者對應的包裝器類型 Byte、Short、Integer、Long,以及字符串和枚舉。
來看一下 switch 語句的格式:
switch(變量) { case 可選值1: // 可選值1匹配后執行的代碼; break; // 該關鍵字是可選項 case 可選值2: // 可選值2匹配后執行的代碼; break; // 該關鍵字是可選項 ...... default: // 該關鍵字是可選項 // 所有可選值都不匹配后執行的代碼 }
變量可以有 1 個或者 N 個值。
值類型必須和變量類型是一致的,并且值是確定的。
值必須是唯一的,不能重復,否則編譯會出錯。
break 關鍵字是可選的,如果沒有,則執行下一個 case,如果有,則跳出 switch 語句。
default 關鍵字也是可選的。
畫個流程圖:
來個示例:
public class Switch2 { public static void main(String[] args) { int age = 20; switch (age) { case 20 : System.out.println("上學"); break; case 24 : System.out.println("蘇州工作"); break; case 30 : System.out.println("洛陽工作"); break; default: System.out.println("未知"); break; // 可省略 } } }
輸出:
上學
當兩個值要執行的代碼相同時,可以把要執行的代碼寫在下一個 case 語句中,而上一個 case 語句中什么也沒有,來看一下示例:
public class Switch3 { public static void main(String[] args) { String name = "沉默王二"; switch (name) { case "詹姆斯": System.out.println("籃球運動員"); break; case "穆里尼奧": System.out.println("足球教練"); break; case "沉默王二": case "沉默王三": System.out.println("乒乓球愛好者"); break; default: throw new IllegalArgumentException( "名字沒有匹配項"); } } }
輸出:
乒乓球愛好者
枚舉作為 switch 語句的變量也很常見,來看例子:
public class SwitchEnumDemo { public enum PlayerTypes { TENNIS, FOOTBALL, BASKETBALL, UNKNOWN } public static void main(String[] args) { System.out.println(createPlayer(PlayerTypes.BASKETBALL)); } private static String createPlayer(PlayerTypes playerType) { switch (playerType) { case TENNIS: return "網球運動員費德勒"; case FOOTBALL: return "足球運動員C羅"; case BASKETBALL: return "籃球運動員詹姆斯"; case UNKNOWN: throw new IllegalArgumentException("未知"); default: throw new IllegalArgumentException( "運動員類型: " + playerType); } } }
輸出:
籃球運動員詹姆斯
03、for 循環
1)普通 for 循環
普通的 for 循環可以分為 4 個部分:
1)初始變量:循環開始執行時的初始條件。
2)條件:循環每次執行時要判斷的條件,如果為 true,就執行循環體;如果為 false,就跳出循環。當然了,條件是可選的,如果沒有條件,則會一直循環。
3)循環體:循環每次要執行的代碼塊,直到條件變為 false。
4)自增/自減:初識變量變化的方式。
來看一下普通 for 循環的格式:
for(初識變量;條件;自增/自減){ // 循環體 }
畫個流程圖:
來個示例:
public class ForExample { public static void main(String[] args) { for (int i = 0; i < 5; i++) { System.out.println("沉默王三好美啊"); } } }
輸出:
沉默王三好美啊 沉默王三好美啊 沉默王三好美啊 沉默王三好美啊 沉默王三好美啊
“哎呀,二哥,你真的是變著法夸我啊。”
“非也非也,三妹,你看不出我其實在夸我自己嗎?循環語句還可以嵌套呢,這樣就可以打印出更好玩的呢,你要不要看看?”
“好呀好呀!”
“看好了啊。”
public class PyramidForExample { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0;j<= i;j++) { System.out.print("?"); } System.out.println(); } } }
打印出什么玩意呢?
? ?? ??? ???? ?????
“哇,太不可思議了,二哥。”
“嘿嘿。”
2)for-each
for-each 循環通常用于遍歷數組和集合,它的使用規則比普通的 for 循環還要簡單,不需要初始變量,不需要條件,不需要下標來自增或者自減。來看一下語法:
for(元素類型 元素 : 數組或集合){ // 要執行的代碼 }
來看一下示例:
public class ForEachExample { public static void main(String[] args) { String[] strs = {"沉默王二", "一枚有趣的程序員"}; for (String str : strs) { System.out.println(str); } } }
輸出:
沉默王二 一枚有趣的程序員
“呀,二哥,你開始王哥賣瓜了啊。”
“嘿嘿,三妹,你這樣說哥會臉紅的。”
3)無限 for 循環
“三妹,你想不想體驗一下無限 for 循環的威力,也就是死循環。”
“二哥,那會有什么樣的后果啊?”
“來,看看就知道了。”
public class InfinitiveForExample { public static void main(String[] args) { for(;;){ System.out.println("停不下來。。。。"); } } }
輸出:
停不下來。。。。 停不下來。。。。 停不下來。。。。 停不下來。。。。
一旦運行起來,就停不下來了,除非強制停止。
04、while 循環
來看一下 while 循環的格式:
while(條件){ //循環體 }
畫個流程圖:
來個示例:
public class WhileExample { public static void main(String[] args) { int i = 0; while (true) { System.out.println("沉默王三"); i++; if (i == 5) { break; } } } }
“三妹,你猜猜會輸出幾次?”
“五次嗎?”
“對了,你可真聰明。”
沉默王三 沉默王三 沉默王三 沉默王三 沉默王三
“三妹,你想不想體驗一下無限 while 循環的威力,也就是死循環。”
“二哥,那會有什么樣的后果啊?”
“來,看看就知道了。”
public class InfinitiveWhileExample { public static void main(String[] args) { while (true) { System.out.println("停不下來。。。。"); } } }
輸出:
停不下來。。。。 停不下來。。。。 停不下來。。。。 停不下來。。。。
把 while 的條件設置為 true,并且循環體中沒有 break 關鍵字的話,程序一旦運行起來,就根本停不下來了,除非強制停止。
05、do-while 循環
來看一下 do-while 循環的格式:
do{ // 循環體 }while(提交);
畫個流程圖:
來個示例:
public class DoWhileExample { public static void main(String[] args) { int i = 0; do { System.out.println("沉默王三"); i++; if (i == 5) { break; } } while (true); } }
“三妹,你猜猜會輸出幾次?”
“五次嗎?”
“對了,你可真聰明。”
沉默王三 沉默王三 沉默王三 沉默王三 沉默王三
“三妹,你想不想體驗一下無限 do-while 循環的威力......”
“二哥,又來啊,我都膩了。”
“來吧,例行公事,就假裝看看嘛。”
public class InfinitiveDoWhileExample { public static void main(String[] args) { do { System.out.println("停不下來。。。。"); } while (true); } }
輸出:
停不下來。。。。 停不下來。。。。 停不下來。。。。 停不下來。。。。
把 do-while 的條件設置為 true,并且循環體中沒有 break 關鍵字的話,程序一旦運行起來,就根本停不下來了,除非強制停止。
06、break
break 關鍵字通常用于中斷循環或 switch 語句,它在指定條件下中斷程序的當前流程。如果是內部循環,則僅中斷內部循環。
可以將 break 關鍵字用于所有類型循環語句中,比如說 for 循環、while 循環,以及 do-while 循環。
來畫個流程圖感受一下:
用在 for 循環中的示例:
for (int i = 1; i <= 10; i++) { if (i == 5) { break; } System.out.println(i); }
用在嵌套 for 循環中的示例:
for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { break; } System.out.println(i + " " + j); } }
用在 while 循環中的示例:
int i = 1; while (i <= 10) { if (i == 5) { i++; break; } System.out.println(i); i++; }
用在 do-while 循環中的示例:
int j = 1; do { if (j == 5) { j++; break; } System.out.println(j); j++; } while (j <= 10);
用在 switch 語句中的示例:
switch (age) { case 20 : System.out.println("上學"); break; case 24 : System.out.println("蘇州工作"); break; case 30 : System.out.println("洛陽工作"); break; default: System.out.println("未知"); break; // 可省略 }
07、continue
當我們需要在 for 循環或者 (do)while 循環中立即跳轉到下一個循環時,就可以使用 continue 關鍵字,通常用于跳過指定條件下的循環體,如果循環是嵌套的,僅跳過當前循環。
來個示例:
public class ContinueDemo { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 5) { // 使用 continue 關鍵字 continue;// 5 將會被跳過 } System.out.println(i); } } }
輸出:
1 2 3 4 6 7 8 9 10
“二哥,5 真的被跳過了呀。”
“那必須滴。不然就是 bug。”
再來個循環嵌套的例子。
public class ContinueInnerDemo { public static void main(String[] args) { for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { // 當i=2,j=2時跳過 continue; } System.out.println(i + " " + j); } } } }
打印出什么玩意呢?
1 1 1 2 1 3 2 1 2 3 3 1 3 2 3 3
“2 2” 沒有輸出,被跳過了。
再來看一下 while 循環時 continue 的使用示例:
public class ContinueWhileDemo { public static void main(String[] args) { int i = 1; while (i <= 10) { if (i == 5) { i++; continue; } System.out.println(i); i++; } } }
輸出:
1 2 3 4 6 7 8 9 10
注意:如果把 if 條件中的“i++”省略掉的話,程序就會進入死循環,一直在 continue。
最后,再來看一下 do-while 循環時 continue 的使用示例:
public class ContinueDoWhileDemo { public static void main(String[] args) { int i=1; do{ if(i==5){ i++; continue; } System.out.println(i); i++; }while(i<=10); } }
輸出:
1 2 3 4 6 7 8 9 10
注意:同樣的,如果把 if 條件中的“i++”省略掉的話,程序就會進入死循環,一直在 continue。
“Java的流程控制語句有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。