Java基礎 迴圈語句 for while do.....while語句

小桐很開心發表於2020-11-10

Java基礎

迴圈語句

1.for迴圈

  • 語法:
for(初始化語句;條件判斷語句;條件控制語句){
		迴圈體語句;
	}
  • 執行流程
  1. 先執行初始化語句
  2. 然後執行條件判斷語句
  3. 如果滿足條件,則執行迴圈體語句
  4. 迴圈體語句執行完後,執行條件控制語句

根據上述標號:1234234234…這樣迴圈下去 直到條件判斷為false結束迴圈

注意:初始化語句只執行一次

例如

public static void main(String[] args) {
        for (int i = 1; i <=3 ; i++) {//先執行初始化語句 i=1; 然後判斷i是否小於等於三 滿足 則輸出i的值
        //然後執行條件控制語句i++;此時i的值變成2 然後再判斷再執行 直到不滿足條件 結束迴圈為止
            System.out.println(i);//依次輸出1 2 3
        }
    }

案例:列印55到80

public static void main(String[] args) {
        for (int i = 55; i <=80 ; i++) {
            System.out.println(i);
        }
    }

注意:迴圈中定義的變數,只在迴圈中起作用,迴圈結束,就從記憶體中消失了

2.while迴圈

  • 語法
初始化語句;
 while(條件判斷語句) { 
    迴圈體語句;    
    條件控制語句;
     }

  • 執行流程
  1. 先執行初始化語句
  2. 然後判斷條件
  3. 滿足條件後執行迴圈體語句
  4. 然後執行條件控制語句
    按照標號:1234234234

注意:初始化語句只執行一次

例如

  public static void main(String[] args) {
       int i=1;
       while (i<=3){
           System.out.println(i);//依次輸出1 2 3
           i++;
       }
    }

3.do…while();

  • 語法:
do{
迴圈體語句;
}while(條件判斷語句);
  • 執行流程
  1. 先進do執行迴圈體語句
  2. 再進while判斷條件
  3. 滿足的話進do再執行,直到條件不滿足,結束迴圈

例如

 public static void main(String[] args) {
       int i=1;
       do {
           System.out.println(i);//依次輸出 1 2 3 
           i++;
       }while (i<=3);
    }

注意

  1. do…while迴圈不論條件滿不滿足 至少會執行一次;因為他從do開始,迴圈體會先執行(所以至少執行一次)
  2. 一般do…while迴圈很少用

4.死迴圈

  • 顧名思義,就是讓迴圈停不下來,一直迴圈。
    當條件判斷一直為true時,該迴圈就成為了死迴圈

例如

while型別

while(true){
//這就是典型的while死迴圈
}
//這個迴圈也是死迴圈
int i = 0;
while(i<10){
i--;
}

for 型別

for(;;){
//典型的for死迴圈格式  裡面不寫條件 初始化語句那些 他就會變成死迴圈
}
//或者條件永遠為true
for(int i = 0; i < 10; i--){
//這個迴圈 i永遠小於10 所以他就構成了死迴圈
}

do…while型別

do{
//這是do....while死迴圈的經典格式
}while(true);

跳出死迴圈需要用break關鍵字

  • break關鍵字 只能用於迴圈 還有switch語句裡 用來結束迴圈或者switch語句

例如

int i = 0;
while(true){
	i++;
	if(i==1000){
	break;//當i加到1000時  會執行break關鍵字  就會結束這個迴圈
	}
}

與break對應的有一個continue關鍵字

  • continue是繼續的意思,當迴圈時遇到continue關鍵字 ,則此次迴圈直接跳過,執行下一次迴圈

例如

for(int i = 1; i <= 3; i++){
	if(i==2){
		continue;	//當i==2時進入if語句執行continue 直接跳出此次迴圈 不輸出2了 直接進行下一次迴圈了 所以沒有輸出2
	}
	System.out.println(i);//依次輸出1 3
}

案例

  1. 求1-5之間的資料和
  2. 求1-10之間偶數和
  3. 求水仙花數 水仙花數是一個三位數 水仙花數的個位、十位、百位的數字立方和等於原數
  4. 統計1到100之間奇數的個數
  5. 每行列印兩個水仙花數
  6. 世界高山峰是珠穆朗瑪峰(8844.43米=8844430毫米), 假如我有一張足夠大的紙,它的厚度是0.1毫米。 請問, 我摺疊多少次,可以折成珠穆朗瑪峰的高度? (while迴圈做)

可以思考著做一做(答案在下面)































求1-5之間的資料和

public class Demo {
    public static void main(String[] args) {
        int sum=0;//定義一個求和變數 賦值0 不影響加法運算
        for(int i = 1; i <= 5; i++){
          sum+=i;//sum=sum+i;
        }
        System.out.println(sum);//15
    }
}

求1-10之間偶數和

public class Demo {
    public static void main(String[] args) {
        int sum=0;//定義一個求和變數 賦值0 不影響加法運算
        for(int i = 1; i <= 10; i++){
            if (i%2==0){//判斷i是否為偶數
                sum+=i;//sum=sum+i;
            }
        }
        System.out.println(sum);//30
    }
}

求水仙花數 水仙花數是一個三位數 水仙花數的個位、十位、百位的數字立方和等於原數

public class Demo {
    public static void main(String[] args) {
        for(int i = 100; i <= 999; i++){//因為是一個三位數  從最小的三位數100開始 到最大的三位數999結束
           int ge=i%10;//取三位數的個位
           int shi=i/10%10;//取十位
           int bai=i/100%10;//取百位
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){//滿足條件的才是水仙花數
                System.out.println(i);// 153  370  371  407
            }
        }
    }
}

統計1到100之間奇數的個數

public class Demo {
    public static void main(String[] args) {
        int count=0;//定義一個變數用來計數
        for(int i = 1; i <= 100; i++){
            if(i%2!=0){//當對二取余余數不為零時則為奇數
                count++;
            }
        }
        System.out.println(count);//50
    }
}

每行列印兩個水仙花數

public class Demo {
    public static void main(String[] args) {
        int count=0;//定義一個變數用來計數
        for(int i = 100; i <= 999; i++){//因為是一個三位數  從最小的三位數100開始 到最大的三位數999結束
           int ge=i%10;//取三位數的個位
           int shi=i/10%10;//取十位
           int bai=i/100%10;//取百位
            if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){//滿足條件的才是水仙花數
                System.out.print(i+" ");// 去掉ln就不換行輸出了
                count++;
                if (count%2==0){//當他為2的倍數時就輸出一個換行
                    System.out.println();//輸出一個換行
                }
            }
        }
    }
}

在這裡插入圖片描述

世界高山峰是珠穆朗瑪峰(8844.43米=8844430毫米), 假如我有一張足夠大的紙,它的厚度是0.1毫米。 請問, 我摺疊多少次,可以折成珠穆朗瑪峰的高度? (while迴圈做)

public class Demo {
    public static void main(String[] args) {
        double a=0.1;//定義一個變數用來代替紙張的厚度
        int count=0;//定義一個變數用來計數
     while (a<=8844430){//當a小於此高度時就摺疊
         a*=2;//a=a*2
         count++;
     }
        System.out.println(count);//27次
    }
}

不懂得可以留言問哦

相關文章