1. 程式人生 > 其它 >JAVA基礎階段03---while與for迴圈

JAVA基礎階段03---while與for迴圈

JAVA基礎階段03

迴圈結構

while迴圈

基礎結構

while(布林表示式){
    // 迴圈內容
}
  • 只要布林表示式為true,迴圈就會一直下去
  • 我們大多數情況會讓迴圈停止下來,我們需要一個讓表達失效的方式結束迴圈
  • 少部分情況需要迴圈一直執行,比如伺服器的請求響應監聽等。
  • 迴圈條件一直為true就會造成無限死迴圈,我們正常的業務程式設計中應該儘量避免死迴圈,會影響程式效能或者造成程式卡死崩潰。
public static void main(String[] args) {
    //輸出1-100

    int i = 0;

    while (i<100){
        i++;
        System.out.println(i);
    }
}
public static void main(String[] args) {
    //計算1+2+3....+100=?

    int i = 0;
    int sum = 0;

    while (i<=100){
        sum = sum + i;
        i++;
    }

    System.out.println(sum);

}

do while迴圈

  • 對於while而言,不過不滿足條件,則不能進入迴圈,但我們需要即使不滿足條件,也至少執行一次。
  • do while相較於while會至少執行一次

基礎結構

do{
    //程式碼語句
}while(布林表示式)
public static void main(String[] args) {
    int i = 0;
    int sum = 0;

    do{
        sum=sum+i;
        i++;
    }while(i<=100);
    System.out.println(sum);
}

while與do while的區別

  • while先判斷後執行,dowhile先執行後判斷
jpublic static void main(String[] args) {
    int a = 0;
    while(a<0){
        System.out.println(a);
        a++;
    }
    System.out.println("==========================");
    do{
        System.out.println(a);
        a++;
    }while(a<0);
}

for迴圈(重要

  • 雖然所有的迴圈語句都可以用while或者do while表示,但是java還提供了另一種語句-----for迴圈,是一些迴圈結構變得更加簡單
  • for迴圈語句是支援迭代的一種通用結構,是最有效,最靈活的迴圈結構
  • for迴圈的執行次數是在執行前就確定的,語法如下
for(初始化;布林表示式;更新){
    //程式碼語句
}

for練習

public static void main(String[] args) {
    //練習1:計算0到100之間的奇數和偶數的和

    int oddSum = 0;
    int evenSum = 0;

    for (int i = 0; i <= 100; i++) {
        if(i%2!=0){ //奇數
            oddSum+=i;
        }else{ //偶數
            evenSum+=i;
        }
    }
    System.out.println("輸出奇數的和:"+oddSum);
    System.out.println("輸出偶數的和:"+evenSum);
}
public static void main(String[] args) {
    //用while或for迴圈輸出1-1000之間能被5整除的數,並且每行輸出3個
    for (int i = 0; i <= 1000; i++) {
        if(i%5==0){
            System.out.print(i+"\t");
        }
        if(i%(5*3)==0){  //每過三個就是15的倍數能整除15就滿足條件
            System.out.println(); //空串換行,或者"\n"
        }
    }
    //println 輸出完會換行
    //print 輸出完不會換行
    /*
    另一種新定義一個整數作為計數器到3輸出回車
     int num=0;
    for (int i = 1; i <=1000; i++) {
        if(i%5==0){
            System.out.print(i+"\t");
            num++;
            if(num%3==0){
                System.out.println();
            }
        }
    }
     */
}
//列印9x9乘法表
//先列印第一列,再把一開始固定的1用新的迴圈包起來(j的迴圈)得出一個矩形的乘法表
//去掉累贅的部分,即判斷i和j的大小
//打印出空格和換行即可成功
public static void main(String[] args) {
    for (int j = 1; j <= 9; j++) {
        for (int i = 1; i <= j; i++) {
            System.out.print(i+"*"+j+"="+(i*j)+"\t");
        }
        System.out.println();
    }
}

增強for迴圈

做個瞭解

  • jdk5引用的主要用於陣列或集合的增強型for迴圈
  • 表示式如下
for(宣告語句:表示式){
    //程式碼句子
}
   
  • 宣告語句:宣告新的區域性變數,該變數的型別必須和陣列元素的型別匹配,其作用限定在迴圈語句塊,其值於此時陣列元素的值相等
  • 表示式:表達是要訪問的陣列名,或者是返回值為陣列的方法。
public static void main(String[] args) {
    int[] numbers = {10,20,30,40,50}; //定義了一個數組

    for(int i = 0;i < 5;i++){
        System.out.println(numbers[i]);
    }
    System.out.println("===================");

    //遍歷陣列的元素
    for (int x:numbers){
        System.out.println(x);
    }
}