一、分類 順序結構:程式從上而下依次執行 分支結構:if-else if-else、switch-case 迴圈結構:while迴圈、for迴圈、do-while迴圈、增強for迴圈 二、具體說明 1.分支結構 1.1if分支結構 說明 1.else結構是可選的; 2.if-else結構可以嵌套使用 ...
一、分類
順序結構:程式從上而下依次執行
分支結構:if-else if-else、switch-case
迴圈結構:while迴圈、for迴圈、do-while迴圈、增強for迴圈
二、具體說明
1.分支結構
1.1if分支結構
說明
1.else結構是可選的;
2.if-else結構可以嵌套使用;
3.如果if-else結構後只有一條執行語句,則{}是可以省略的。但不建議省略,可讀性差
代碼1:
public class test { public static void main(String[] args) { int age = 18; if (age >= 18) { System.out.println("你已經成年了");//你已經成年了 } System.out.println("恭喜你");//恭喜你 } }
代碼2:
public class test { public static void main(String[] args) { int age = 23; if (age >= 18) { System.out.println("你已經成年了");//你已經成年了 }else{ System.out.println("未成年了有很多限制"); } System.out.println("end");//end } }
代碼3:
public class test { public static void main(String[] args) { int age = 30; if (age < 18) { System.out.println("未成年"); } else if (age < 30) { System.out.println("青壯年"); } else if (age < 50) { System.out.println("壯年");//壯年 }else{ System.out.println("老年"); } } }
1.2switch-case結構
說明:
① 根據switch表達式中的值,依次匹配各個case中的常量。一旦匹配成功,則進入相應case結構中,調用其執行語句。當調用完執行語句以後,則仍然繼續向下執行其他case結構中的執行語句,直到遇到break關鍵字或此switch-case結構末尾結束為止。
② break,可以使用在switch-case結構中,表示一旦執行到此關鍵字,就跳出switch-case結構
③ switch結構中的表達式,只能是如下的6種數據類型之一:byte 、short、char、int、枚舉類型(JDK5.0新增)、String類型(JDK7.0新增)
④ case 之後只能聲明常量。不能聲明範圍。
⑤ break關鍵字是可選的。
⑥ default:相當於if-else結構中的else. default結構是可選的,而且位置是靈活的。
⑦ 如果switch-case結構中的多個case的執行語句相同,則可以考慮進行合併。
⑧ break在switch-case中是可選的
public class test { public static void main(String[] args) { String season = "summer"; switch (season){ case "spring": System.out.println("春暖花開"); break; case "summer": System.out.println("夏日炎炎");//夏日炎炎 break; case "autumn": System.out.println("秋高氣爽"); break; case "winter": System.out.println("冰天雪地"); break; default: System.out.println("季節輸入有誤"); break; } } }
分支結構的使用場景:
對於確定的常量,不涉及到範圍,優先考慮使用switch-case結構,因為執行效率稍高;
2.迴圈結構
迴圈結構的4要素:
①初始化條件;
②迴圈條件----boolean類型;
③迴圈體;
④迭代條件;
2.1for迴圈
說明:
①迴圈條件部分為boolean類型的表達式,一般當迴圈條件部分返回false時結束迴圈;
②初始化條件部分可以聲明多個相同類型的變數;
③迭代部分也可以聲明多個
代碼:
public class test { public static void main(String[] args) { //遍歷1-100之間的偶數,並列印其和 int sum = 0; for (int i = 1;i <= 100;i++){ if (i % 2 == 0) { System.out.println(i); sum += i; } } System.out.println(sum);//2550 } }
2.2while迴圈
說明:
①不要忘記迭代部分,不然會陷入死迴圈;
②while迴圈和for迴圈是可以相互轉換的;
代碼:
public class test { public static void main(String[] args) { //遍歷1-100之間的奇數,並列印其和 int sum = 0; int i = 1; while (i <= 100) { if (i % 2 != 0) { System.out.println(i); sum += i; } i++; } System.out.println(sum);//2500 } }
2.3do-while迴圈
說明:
①do-while結構至少執行一次迴圈體;
②開發中,更多的使用的是while和for,do-while很少使用;
代碼:
public class test { public static void main(String[] args) { //遍歷1-100之間的奇數,並列印其和 int sum = 0; int i = 1; do { if (i % 2 != 0) { System.out.println(i); sum += i; } i++; }while (i <= 100); System.out.println(sum);//2500 } }
3.無限迴圈結構
while(true)或for(;;)
4.判斷一個迴圈是否執行完畢?
①迴圈條件返回false;
②執行到break;
5.迴圈嵌套
記住一個點:外層迴圈控制行數,內層迴圈控制列數。
public class test { public static void main(String[] args) { //九九乘法表 for (int i = 1;i <= 9;i++){ for (int j = 1;j <= i;j++){ System.out.print(j + "*" + i + "=" + (j * i) + "\t"); } System.out.println(); } } }
6.break關鍵字
可以使用在switch-case結構、迴圈結構中。表示結束當前迴圈,關鍵字後不能再聲明執行語句。
代碼:
public class test { public static void main(String[] args) { for (int i = 0;i < 10;i++){ if (i == 3) { break; } System.out.println("i = " + i); } System.out.println("游戲結束");//這條語句可以執行,因為已經出了for迴圈了 } }
帶標簽的break:
public class test { public static void main(String[] args) { label:for (int i = 0;i < 10;i++){ for (int j = 0;j < 10;j++){ if (j == 4) { break label; } System.out.println("i * j = " + (i * j)); } } System.out.println("游戲結束");//這條語句可以執行,因為已經出了for迴圈了 } }
7.continue關鍵字
使用在迴圈結構中,表示結束當次迴圈。關鍵字後不能聲明執行語句。
代碼:
public class test { public static void main(String[] args) { for (int i = 0;i < 100;i++){ if (i % 10 == 0) { continue; } System.out.println(i); } } }
作者:Java之美
日期:2020-03-28