循環結構的主要特點是可以根據某些判斷條件來重複執行某段程序代碼的處理結構,Java語言的循環結構一共分爲兩種:while循環結構和 for循環結構。
1、While循環
1.1、使用 while語句可以實現循環條件的判斷,當判斷條件滿足時則執行循環體的內容,Java中 while循環結構有兩類:
while 循環 do... while 循環
while (循環判斷) { do {
循環語句; 循環語句;
修改循環結束條件; 修改循環結束條件;
} } while (循環判斷);
1.2、while與 do…while的區別:
while循環需要先判斷循環條件後纔可以執行程序代碼,do…while循環可以先執行一次循環,再進行後續循環的判斷。
若循環條件不滿足時,while循環一次都不執行,do…while循環至少執行一次。
注意: 避免死循環。
例59:使用 while循環結構實現 1~100數字累加計算
public class JavaDemo054 {
public static void main(String[] args) {
int sum = 0;// 保存最終的計算總和
int num = 1;// 進行循環控制
while (num <= 100) {// 循環執行條件判斷
sum += num;// 數字累加
num++;// 修改循環條件
}
System.out.println(sum);// 輸出累加結果
}
}
例60:使用 do…while實現 1~100數字累加
public class JavaDemo055 {
public static void main(String[] args) {
int sum = 0;// 保存最終的計算總和
int num = 1;// 循環控制
do {
sum += num;// 累加
num++;// 修改循環條件
} while (num <= 100);// 判斷循環條件
System.out.println(sum);// 輸出累加結果
}
}
2、for循環
在明確指定了循環次數的情況下,可以利用 for循環結構來實現循環控制。
for (循環初始化條件; 循環判斷; 循環條件變更) {
循環語句;
}
for循環在定義的時候是將循環初始化條件、循環判斷、循環條件都放在了一行語句中,而在執行的時候循環初始化條件只會執行一次,而後循環判斷條件在每次執行循環體前都會進行判斷,並且每當循環體執行完畢後都會自動執行循環條件變更。
例61:使用 for循環實現 1~100累加
public class JavaDemo056 {
public static void main(String[] args) {
int sum = 0;
// 設置循環初始化條件 num,同時此變量作爲累加操作使用,每次執行循環體前都要判斷 (num <= 100)
// 循環體執行完畢後會自動執行 "num++"改變循環條件,並且重新判斷循環條件,滿足時繼續執行語句
for (int num = 1; num <= 100; num++) {
sum += num;// 循環體中實現累加操作
}
System.out.println(sum);// 輸出累加結果
}
}
提示: 在編寫 for循環的時候儘量不要將初始化和循環判斷條件分開使用。
例62:另一種 for循環寫法
public class JavaDemo057 {
public static void main(String[] args) {
int sum = 0;// 保存最終的計算總和
int num = 1;// 循環初始化條件
for (; num <= 100;) {// for循環
sum += num;// 循環體中實現累加操作
num++;// 修改循環結束條件
}
System.out.println(sum);// 輸出累加結果
}
}
總結:
while循環:在不確定循環次數,但確定循環結束條件的情況下使用。
for循環:在確定循環次數的情況下使用。
3、循環控制語句
在循環結構中只要循環條件滿足,循環體的代碼就會一直執行,程序之中提供有兩個循環停止的控制語句:continue (退出本次循環)、break (退出整個循環)。
提示: 循環控制語句在使用時往往要結合分支語句進行判斷。
例63:使用 continue控制循環
public class JavaDemo058 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if(i == 3) {
continue;
}
System.out.print(i + "、");
}
}
}
例64:使用 break控制循環
public class JavaDemo059 {
public static void main(String[] args) {
for (int x = 1; x < 10; x++) {
if (x == 3) {
break;
}
System.out.print(x + "、");
}
}
}
4、循環嵌套
循環結構可以在內部嵌入若干個子的循環結構,可以實現更加複雜的循環控制結構,同樣會使程序的複雜度提升。
例65:打印乘法口訣表
public class JavaDemo060 {
public static void main(String[] args) {
for(int x = 1; x <= 9; x++) {
for(int y = 1; y <= x; y++) {
System.out.print(y + "*" + x + "=" + (x * y) + "\t");
}
System.out.println();
}
}
}
例66:打印三角形
public class JavaDemo061 {
public static void main(String[] args) {
int line = 5;// 總體行數
for (int x = 0; x < line; x++) {// 外層循環控制三角形行數
for (int y = 0; y < line - x; y++) {// 每行的空格數量逐步減少
System.out.print(" ");// 輸出空格
}
for (int y = 0; y <= x; y++) {// 每行輸出的 "*"逐行增多
System.out.print("* ");// 輸出空格
}
System.out.println();// 換行
}
}
}
例67:使用 continue進行跳出處理
public class JavaDemo062 {
public static void main(String[] args) {
point: for(int x = 0; x < 3; x++) {// 外層 for循環,定義代碼標記
for(int y = 0 ; y < 3; y++) {// 內層 for循環
if(x==y) {
continue point;// 循環跳轉到指定外層循環
}
System.out.print(x + "、");
}
System.out.println();
}
}
}
027至029總結:
1、if語句可依據判斷的結果來決定程序的流程。
2、選擇結構包含 if、if… else及 switch語句,語句中加上了選擇的結構之後,根據選擇的不同,程序的運行會有不同的方向和結果。
3、需要重複執行某項功能時,最好使用循環結構,可以選擇使用 Java所提供的 for、while及 do… while循環來完成。
4、break語句可以強制程序逃離循環。當程序運行到 break語句時,即會離開循環,執行循環外的語句,如果 break語句出現在嵌套循環中的內層循環,則 break語句只會選擇逃離當前層循環。
5、continue語句可以強制程序跳到循環的起始位置,當程序運行到 continue語句時,即會停止運行剩餘的循環主體,而回到循環的開始處繼續運行。