Java流程控制03:迴圈結構
阿新 • • 發佈:2020-12-26
一、while迴圈
- while是最基本的迴圈,它的結構為:
while(布林表示式){
//迴圈內容
}
- 只要布林表示式為true,迴圈就會一直執行下去。
- 我們大多數情況實惠讓迴圈停止下來的,我們需要一個讓表示式失效的方式來結束迴圈。
- 少部分情況需要迴圈一直執行,比如伺服器的請求響應監聽等。
- 迴圈條件一直為true就會造成無限迴圈【死迴圈】,我們正常的業務程式設計中應該儘量避免死迴圈。會影響程式的效能或者造成程式卡死崩潰!
//死迴圈
while(true){
//等待客戶端連線
//定時檢查
//......
}
- 思考:計算1+2+3+...+100=?
public class WhileDemo01 {
public static void main(String[] args) {
int i = 1;
int sum=0;
while(i<=100){
sum+=i;
i++;
}
System.out.println("sum="+sum);
}
二、do...while迴圈
- 對於while語句而言,如果不滿足條件,則不能進入迴圈。但有時候我們需要即使不滿足條件,也至少執行一次。
- do...while迴圈和while迴圈相似,不同的是,do...while迴圈至少會執行一次。
do{
//迴圈內容
}while(布林表示式);
- while和do...while的區別:
- while先判斷後執行。doWhile是先執行後判斷!
- doWhile總是保證迴圈體會被至少執行一次!這是他們的主要差別。
public class DoWhileDemo02 { public static void main(String[] args) { int a=0; while(a<0){//迴圈體不會被執行 System.out.println("a="+a); a++; } System.out.println("=================="); do{//迴圈體會執行一次 System.out.println("a="+a); a++; }while(a<0); } }
三、for迴圈
- 雖然所有迴圈結構都可以用while或者do...while表示,但Java提供了另一種語句——for迴圈,使一些迴圈結構變得更加簡單。
- for迴圈語句是支援迭代的一種通用結構,是最有效,最靈活的迴圈結構。
- for迴圈執行的次數是在執行前就確定的。語法格式如下:
for(初始化; 布林表示式; 更新){
//程式碼語句
}
//死迴圈
for(;;){}
- 練習01:輸出0~100的奇數和偶數的和
public class ForDemo01 {
public static void main(String[] args) {
int odd=0;
int even=0;
for (int i = 1; i <=100; i++) {
if (i%2==0){
even+=i;
}else{
odd+=i;
}
}
System.out.println("odd="+odd);
System.out.println("even="+even);
}
}
- 練習02:用while或者for迴圈輸出1-1000之間能被5整數的數,並且每行輸出3個
public class ForDemo02 {
public static void main(String[] args) {
for (int i = 1; i <=1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if (i%(5*3)==0){
System.out.println(); //輸出換行
//System.out.print("\n"); //輸出換行
}
}
}
}
- 練習03:列印九九乘法表
public class ForDemo03 {
public static void main(String[] args) {
int i=0;
int j=0;
//列印九九乘法表
for (i = 1; i <= 9; i++) {
for(j=1; j<=i; j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();//列印換行
}
}
}
四、在java5中引入了一種主要用於陣列的增強型for迴圈
- 這是我們先只是見一面,做個瞭解,之後陣列我們重點使用
- Java5 引入了一種主要用於陣列或集合的的增強for迴圈。
- Java增強for迴圈語法格式如下:
for(宣告語句; 表示式){
//程式碼語句
}
- 宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配。其作用限定在迴圈語句塊,其值與此時陣列元素值相等。
- 表示式:表示式是要訪問的陣列名,或者是返回值為陣列的方法。
public class ForDemo03 {
public static void main(String[] args) {
int[] numbers=[10,20,30,40,50];
for (int i = 1; i <=5; i++) {
System.out.println(numbers[i]);
}
//遍歷陣列的元素
for (int x:numbers) {
System.out.println(x);
}
}
}