Java基礎–循環結構

循環結構

while 循環

  1. while是最基本得循環,它的結構為:

    while(布爾表達式){
        //循環內容
    }
    
  2. 只要布爾表達式為true,循環就會一直執行下去

public class WhileDemo01 {
    public static void main(String[] args) {
        //輸出0~100
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
        }
    }
}
  1. 我們大多是情況是會讓循環停止下來得,我們需要一個表達失效得方式來結束循環。
  2. 少部分得情況需要循環一直執行,比如伺服器得請求響應監聽等。
  3. 循環條件一直為true就會造成無線循環(死循環),我們正常得業務編程中也應該盡量避免死循環。會影響程式性能或者造成程式卡死崩潰!
public class WhileDemo02 {
    public static void main(String[] args) {
        while (true){
        }
    }
}//死循環

思考:計算1+2+3+….+100=?

public class WhileDemo03 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while(i<=100){
            sum=sum+i;
            i++;
        }
        System.out.println(sum);
    }
}

do…..while 循環

  1. 對於while語句而言,如果不滿足條件,則不能進入循環。但是有時候我們需要及時不滿足條件,也至少執行一次。

  2. do….while循環和while循環相似,不同得是,do….while循環至少會執行一次。

    do{
        //程式碼語句
    }while(布爾表達式);
    
  3. While和do-While得區別:

  4. while先判斷後執行,dowhile式先執行後判斷!

  5. Do….while總是保證循環體會被執行至少一次,這是他們得主要差別。

public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a = 0;
        while (a<0){
            System.out.println(a);
            a++;
        }
        System.out.println("=========");
        do {
            System.out.println(a);
        }while (a<0);
    }

for循環

  1. 雖然所有循環結構都可以用while或者do…while表示但Java提供了另一種語句一for循環,使一些循環結構變得更加簡單。
  2. for循環語句是支援迭代的一種通用結構,是最有效、最靈活的循環結構。
  3. for循環執行的次數是在執行前就確定的。語法格式如下:
for(初始化;布爾表達式;更新){
    //程式碼語句
}
public class ForDemo01 {
    public static void main(String[] args) {
        int a = 1;
        while (a<=100){
            System.out.println(a);
            a += 2;
        }
        System.out.println("while循環結束!");
        for (int i = 1;  i <= 100; i++) {
            System.out.println(i);
        }
        //死循環
        for ( ;  ;  ) {
        }
/*最先執行初始化步驟。可以聲明一種類型, 但可初始化一個或多個循環控制變數,也可以是空語句。然後,檢測布爾表達式的值。如果為true, 循環體被執行。如果為false, 循環終止,開始執行循環體後面的語句。執行一次循環後,更新循環控制變數(迭代因子控制循環變數的增減)。再次檢測布爾表達式。循環執行上面的過程。*/

練習1:計算0到100之間的奇數和偶數的和

public class ForDemo02 {
    public static void main(String[] args) {
        int sum1 = 0;
        int sum2 = 0;
        for (int i = 0; i<100; i+=2){
            sum1 = sum1 + i;
        }
        System.out.println("============================");
        for (int i2 = 1; i2 < 100; i2+=2){
            sum2 = sum2 + i2;
        }
        System.out.println("偶數和為"+sum1);
        System.out.println("奇數和為"+sum2);
        //第二種
        int j = 0;
        int o = 0;
        for (int z = 0; z < 100; z++) {
            if (z%2!=0){j+=z;
            }else {o+=z;
            }
        }
        System.out.println(j);
        System.out.println(o);
    }
}

練習2: 用while或for循環輸出1-1000之間能被5整除的數,並且每行輸出3個

public class ForDemo03 {
    public static void main(String[] args) {
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0){
                System.out.print(i+"\t");
                if (i%(5*3)==0){
                    System.out.println();
                }
            }
        }
    }
}

練習3:列印九九乘法表

public class ForDemo04 {
    public static void main(String[] args) {
        for (int p = 1; p <= 9; p++) {
            for (int i = 1; i <= p; i++) {
                System.out.print((p * i)+"\t");
            }
        }
    }
}

增加for循環

  1. 這裡我們先只是見一面,做個了解,之後數組我們重點使用

  2. 在java5中引入了一種主要用於數組得增強型for循環。

  3. java增強for循環語法格式:

    for(聲明語句:表達式){
    //程式碼句子
    }
    
  4. 聲明語句:聲明新得局部變數,該變數的類型必須何數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。

  5. 表達式:表達式是要訪問的數組名,或者返回值為數組的方法。

public class ForDemo05 {
    public static void main(String[] args) {
        int [] numbres = {10,20,30,40,50};
       for (int i = 0;i<5;i++){
           System.out.println(numbres[i]);
       }
        System.out.println("================");
        for (int x:numbres){
            System.out.println(x);
        }
            }
}

break continue

    1. break在任何循環語句的主體部分,均可用break控制循環的流程。break用於強行退出循環,不執行循環中剩餘的語句。(break語句也在switch語句中使用)
    public class BreakDemo01 {
        public static void main(String[] args) {
    
            int i = 0;
            while (i<100){
                i++;
                System.out.println(i);
                if (i==30){
                    break;
                }
            }
            System.out.println("123");
        }
    }
    
    1. continue語句用在循環語句體中,用於終止某次循環過程,即跳過循環體中尚未執行的語句,接著進行下一次是否執行循環的判定。
public class ContinueDemo01 {
    public static void main(String[] args) {
        int i = 0;
        while (i<100){
            i++;
            if (i%10==0){
                System.out.println();
                continue;
            }
            System.out.print(i);
        }
    }
}

break在任何循環語句的主體部分均可用break 控制循環的流程。 break用 於強行退出循環,不執行循環中剩餘的語句。(break 語句也在switch語句中使用)

continue語用在循環語句體中,用於終止某次循環過程,即跳過循環體中尚未執行的語句,接著進行下一次是否執行循環的判定。

  1. 關於goto關鍵字
    goto關鍵字很早就在程式設計語言中出現。 儘管goto仍是Java的一 個保留字,但並未在語言中得到正式使用; Java沒有goto。然而,在break和continue這兩個關鍵字的身上,我們仍然能看出- -些goto的影子—帶標籤的break和continue.
  2. 「標籤」是指後面跟-一個冒號的標識符,例如: label:
  3. 對Java來說唯- 用到標籤的地方是在循環語句之前。而在循環之前設置標籤的唯-理由是:我們希望在其中嵌套另-個循環,由於break和continue關鍵字通常只中斷當前循環,但若隨同標籤使用,它們就會中斷到存在標籤的地方。