# Java循環結構 - for, while 及 do...while
順序結構的程序語句只能被執行一次。如果您想要同樣的操作執行多次,,就需要使用循環結構。
Java中有三種主要的循環結構:
* while循環
* do…while循環
* for循環
在Java5中引入了一種主要用于數組的增強型for循環。
## while循環
while是最基本的循環,它的結構為:
```
while( 布爾表達式 ) {
//循環內容
}
```
只要布爾表達式為true,循環體會一直執行下去。
### 實例
```
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
```
以上實例編譯運行結果如下:
```
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
```
## do…while循環
對于while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。
do…while循環和while循環相似,不同的是,do…while循環至少會執行一次。
```
do {
//代碼語句
}while(布爾表達式);
```
**注意:**布爾表達式在循環體的后面,所以語句塊在檢測布爾表達式之前已經執行了。 如果布爾表達式的值為true,則語句塊一直執行,直到布爾表達式的值為false。
### 實例
```
public class Test {
public static void main(String args[]){
int x = 10;
do{
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}while( x < 20 );
}
}
```
以上實例編譯運行結果如下:
```
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
```
## for循環
雖然所有循環結構都可以用while或者do...while表示,但Java提供了另一種語句 —— for循環,使一些循環結構變得更加簡單。
for循環執行的次數是在執行前就確定的。語法格式如下
```
for(初始化; 布爾表達式; 更新) {
//代碼語句
}
```
關于for循環有以下幾點說明:
* 最先執行初始化步驟。可以聲明并初始化一個或多個循環控制變量,也可以是空語句。
* 然后,檢測布爾表達式的值。如果為true,循環體被執行。如果為false,循環終止,開始執行循環體后面的語句。
* 執行一次循環后,更新循環控制變量。
* 再次檢測布爾表達式。循環執行上面的過程。
### 實例
```
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x+1) {
System.out.print("value of x : " + x );
System.out.print("\n");
}
}
}
```
以上實例編譯運行結果如下:
```
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
```
## Java增強for循環
Java5引入了一種主要用于數組的增強型for循環。
Java增強for循環語法格式如下:
```
for(聲明語句 : 表達式)
{
//代碼句子
}
```
**聲明語句:**聲明新的局部變量,該變量的類型必須和數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
**表達式:**表達式是要訪問的數組名,或者是返回值為數組的方法。
### 實例
```
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
```
以上實例編譯運行結果如下:
```
10,20,30,40,50,
James,Larry,Tom,Lacy,
```
## break關鍵字
break主要用在循環語句或者switch語句中,用來跳出整個語句塊。
break跳出最里層的循環,并且繼續執行該循環下面的語句。
### 語法
break的用法很簡單,就是循環結構中的一條語句:
```
break;
```
### 實例
```
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
break;
}
System.out.print( x );
System.out.print("\n");
}
}
}
```
以上實例編譯運行結果如下:
```
10
20
```
## continue關鍵字
continue適用于任何循環控制結構中。作用是讓程序立刻跳轉到下一次循環的迭代。
在for循環中,continue語句使程序立即跳轉到更新語句。
在while或者do…while循環中,程序立即跳轉到布爾表達式的判斷語句。
### 語法
continue就是循環體中一條簡單的語句:
```
continue;
```
### 實例
```
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ) {
if( x == 30 ) {
continue;
}
System.out.print( x );
System.out.print("\n");
}
}
}
```
以上實例編譯運行結果如下:
```
10
20
40
50
```
- Java 基礎
- Java 簡介
- Java開發環境配置
- Java基礎語法
- Java對象和類
- Java基本數據類型
- Java變量類型
- Java修飾符
- Java運算符
- Java循環結構 - for, while 及 do...while
- Java分支結構 - if...else/switch
- Java Number類
- Java Character類
- Java String類
- Java StringBuffer和StringBuilder類
- Java 數組
- Java 日期時間
- Java正則表達式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 異常處理
- Java 面向對象
- Java 繼承
- Java 重寫(Override)與重載(Overload)
- Java 多態
- Java 抽象類
- Java 接口
- Java 包(package)
- Java 高級教程
- Java 數據結構
- Java Enumeration接口
- Java Bitset類
- Java Vector 類
- Java Stack 類
- Java Dictionary 類
- Java Hashtable 接口
- Java Properties 接口
- Java 集合框架
- Java 泛型
- Java序列化
- Java 網絡編程
- Java 發送郵件
- Java 多線程編程
- Java Applet基礎
- Java 文檔注釋
- Servlet 教程
- Servlet 簡介
- Servlet 環境設置
- Servlet 生命周期
- Servlet 實例
- Servlet 表單數據
- Servlet 客戶端 HTTP 請求
- Servlet 服務器 HTTP 響應
- Servlet HTTP 狀態碼
- Servlet 編寫過濾器
- Servlet 異常處理
- Servlet Cookies 處理
- Servlet Session 跟蹤
- Servlet 數據庫訪問
- Servlet 文件上傳
- Servlet 處理日期
- Servlet 網頁重定向
- Servlet 點擊計數器
- Servlet 自動刷新頁面
- Servlet 發送電子郵件
- Servlet 包
- Servlet 調試
- Servlet 國際化
- JSP 基礎
- JSP 簡介
- JSP 開發環境搭建
- JSP 結構
- JSP 生命周期
- JSP 語法
- JSP 指令
- JSP 動作元素
- JSP 動作元素
- JSP 隱含對象
- JSP 客戶端請求
- JSP 服務器響應
- JSP HTTP 狀態碼
- JSP 表單處理
- JSP 過濾器
- JSP Cookies 處理
- JSP Session
- JSP 文件上傳
- JSP 日期處理
- JSP 頁面重定向
- JSP 點擊量統計
- JSP 自動刷新
- JSP 發送郵件
- JSP 高級教程
- JSP 標準標簽庫(JSTL)
- JSP 連接數據庫
- JSP XML 數據處理
- JSP JavaBean
- JSP 自定義標簽
- JSP 表達式語言
- JSP 異常處理
- JSP 調試
- JSP 國際化
- 免責聲明