1. 程式人生 > >Java基礎知識-迴圈語句的使用介紹(for、while、do-while)

Java基礎知識-迴圈語句的使用介紹(for、while、do-while)

今天給大家介紹一下Java中迴圈語句的使用用法和每種迴圈語句的使用場景。

首先是最經常使用的for語句,下面看看for語句的結構:for 語句的基本結構如下所示:
for(初始化表示式;判斷表示式;遞增(遞減)表示式){
    執行語句;   //一段程式碼
}

初始化表示式:初始化表示式的意義,在於定義迴圈之前變數的值是多少,如果沒有這一項,就不知道該從哪個值開始迴圈。
判斷表示式:判斷表示式的作用在於規定迴圈的終點。如果沒有判斷表示式,那麼此迴圈就成了死迴圈。
遞增(遞減)表示式:這一項規定每執行一次程式,變數以多少增量或減量進行變化。
結構清楚了,現在就舉一個最基礎的例子來介紹一下:(這個例子是迴圈輸出0到5的數字。)
        //for迴圈基礎寫法
        for(int i=0;i<5;i++){
            System.out.println("i:"+i);
        }
如果不想在for中進行初始化的可以這麼寫:
        //for迴圈中初始化放在外面的寫法
        int j=0;
        for(;j<=6;j=j+2){
            System.out.println("j:"+j);
        }
如果想要利用for語句實現死迴圈的可以這麼寫:
//        for特性寫法
        for(;;){
            System.out.println("yes");
        }
如果即想要實現死迴圈又想要對引數進行控制的,可以這麼寫:
        int n=0;
        for(;;n=n+10){
            System.out.println("n:"+n);
        }
如果想要利用for來遍歷陣列或者遍歷集合物件的,可以這麼寫:
        //利用for迴圈進行遍歷陣列或者物件
        String[] strNum={"張三","李四","王五"};
        for(String str:strNum){
            System.out.println("name:"+str);
        }
如果想要利用for實現多層迴圈的,可以這麼寫:
        //for實現雙層迴圈
        for(int i=0;i<5;i++){
            for(int j=0;j<5;j++){
                System.out.print(j+"  ");
            }
            System.out.println("i:"+i);
        }
不過這裡需要注意的是:開發過程中儘量少寫多層迴圈,因為多層迴圈非常耗費時間,效率特別低下。現在在來給大家介紹一下while的結構和用法:while 關鍵字的中文意思是“當……的時候”,也就是當條件成立時迴圈執行對應的程式碼。while 語句是迴圈語句中基本的結構,語法格式比較簡單。
while 語句語法格式:
while(迴圈條件)
         迴圈體;

為了結構清楚,並且使迴圈體部分可以書寫多行程式碼,一般把迴圈體處理成程式碼塊,則語法格式變為:
while(迴圈條件){
         迴圈體;
}

語法說明:和if 語句類似,如果不是用程式碼塊的結構,則只有while後面的第一個語句是迴圈體語句。在該語法中,要求迴圈條件的型別為boolean型別,指迴圈成立的條件,迴圈體部分則是需要重複執行的程式碼。
執行流程:在執行while 語句時,首先判斷迴圈條件,如果迴圈條件為false,則直接執行while 語句後續的程式碼,如果迴圈條件為true,則執行迴圈體程式碼,然後再判斷迴圈條件,一直到迴圈條件不成立為止。
結構清楚了,接下來就舉一個簡單的例子,給大家介紹一下while具體的使用方法:
        //while基本
        int i=0;
        while(i<5){
            System.out.println("i:"+i);
            i++;
        }
如果想要使用break或者continue來控制while退出的條件,可以這麼寫:
 //使用break或者continue
        int accout=0;
        while(true){
            System.out.println("accout:"+accout);
            accout++;
            if(accout==5){
                break;
            }
            if(accout==2){
                continue;
            }
        }
但是如果這麼寫的話就會出現死迴圈:
        //這樣的寫法會導致死迴圈的出現
        int accout=0;
        while(true){
            if(accout==5){
                break;
            }
            if(accout==2){
                continue;
            }
            System.out.println("accout:"+accout);
            accout++;
        }
為什麼會出現死迴圈呢?這裡最大的原因就是continue的使用,因為account==2的時候就不會執行account++這個語句了,所以就不會有account==5條件成立的時候了。最後在給大家介紹一下do-while的結構和使用方法:do-while 語句由關鍵字do 和while 組成,是迴圈語句中最典型的“先迴圈再判斷”的流程控制結構,這個和其它2 個迴圈語句都不相同。
do-while 語句的語法格式為:
do{
        迴圈體;
}while(迴圈條件);

語法說明:在do-while 語句中,迴圈體部分是重複執行的程式碼部分,迴圈條件指迴圈成立的條件,要求迴圈條件是boolean 型別,值為true 時迴圈執行,否則迴圈結束,最後整個語句以分號結束。
執行流程:當執行到do-while 語句時,首先執行迴圈體,然後再判斷迴圈條件,如果迴圈條件不成立,則迴圈結束,如果迴圈條件成立,則繼續執行迴圈體,迴圈體執行完成以後再判斷迴圈條件。
結構清楚了現在就舉一個簡單例子,看看do-while具體的使用方法:
        //do-while的基本用法
        int i=0;
        do {
            System.out.println("我一定會執行一次的");
            i++;
        }while(i<5);
三種迴圈到此就介紹完了,現在給大家說一下三種例子的具體使用場景:1.for一般是在迴圈個數已知的情況下使用的2.while一般是在迴圈個數未知,且迴圈受到嚴格控制的情況下使用的。3.do-while一般也是在迴圈個數未知,但是它和while最大的不同點在於,不管迴圈的條件是什麼,do-while都會至少執行一次。最後在給大家用這三種迴圈舉三個1+2+3+4+。。。+100的案例:
        //分別使用三種迴圈結構實現1+2+3。。。+100的值
        int iTotal=0;
        for(int i=1;i<=100;i++){
            iTotal=iTotal+i;
        }
        System.out.println("for 100:"+iTotal);

        int wTotal=0;
        int wi=0;
        while(wi<=100){
            wTotal=wTotal+wi;
            wi++;
        }
        System.out.println("while 100:"+wTotal);

        int dwTotal=0;
        int dwi=0;
        do{
            dwTotal=dwTotal+dwi;
            dwi++;
        }while(dwi<=100);
        System.out.println("do-while 100:"+dwTotal);
如果大家對文章有什麼問題或者疑意之類的,可以加我訂閱號在上面留言,訂閱號上面我會定期更新最新部落格。如果嫌麻煩可以直接加我wechat:lzqcode