Java for循環(huán)詳解
對于java中的for循環(huán),我們用的最多的無非就是下面這個語句:
for (int i = 0; i < 10; i++) { System.err.println(i); }
但是對于for循環(huán)來說,它也有很多變體,如果不清楚了解for循環(huán)的結(jié)構(gòu)原理,遇上一些變體的for循環(huán),可能一時不太明白它的含義,for循環(huán)雖然有很多變體,但都離不開括號內(nèi)3條語句的模式(除了增強(qiáng)for循環(huán)模式,后面再討論)
for循環(huán)的結(jié)構(gòu):
for(語句A; 語句B; 語句C){ //循環(huán)體 }
其中,語句A在整個循環(huán)過程中,只會執(zhí)行一次;語句B必須是布爾類型的表達(dá)式(當(dāng)然也可以不寫,如果寫就必須是布爾類型表達(dá)式),通過該布爾表達(dá)式去判斷是否繼續(xù)執(zhí)行循環(huán)體;語句C會在每次循環(huán)結(jié)束后執(zhí)行,也就是說,循環(huán)體執(zhí)行多少次,語句C就會執(zhí)行多少次。
其中語句的執(zhí)行順序是:
語句A→(語句B → 循環(huán)體 → 語句C)→(語句B → 循環(huán)體 → 語句C)→ ... →退出循環(huán)
下面簡單介紹一些for循環(huán)的變體:
變體一:語句豐富化多樣化,只要保證語句A、C都是一條語句,語句B是布爾表達(dá)式,語句想怎么寫由你自己定。
for (int i = 0, j = 0; i < 10 | j< 12; i++, j++) { System.err.println(i); System.err.println(j); System.err.println("========="); }
變體二:語句A省略
boolean flag = true; int m = 0; for (;flag; m++){ if (m==10) flag=false; System.err.println(m); }
變體三:語句B省略,此時只有從循環(huán)體內(nèi)退出循環(huán),否則是無限循環(huán)。
int m = 0; for (;; m++){ if (m==10) break; System.err.println(m); }
變體四:語句C省略
int m = 0; for (;;){ if (m==10) break; System.err.println(m); m++; }
說明:以上的變體,只是相對于我們常用的形式來講的,變體的結(jié)構(gòu)本質(zhì)是不變的,我們沒必要去刻意的使用變體的形式。之所以提出來講,只是希望以后遇到變體的情況,能盡快看懂循環(huán)的含義,不至于看到別人寫的代碼,和自己寫的方式不一樣,然后一臉蒙圈。上面并未列出所有變體,簡單來說,語句A,B,C都是可以單獨省略的。
對于增強(qiáng)for循環(huán),就不多做介紹了,用的也比較多,基本結(jié)構(gòu)就是:
Integer[] arr = new Integer[]{1,2,3,4}; for (Integer a : arr){ System.err.println(a); } List<String> list = new ArrayList<>(); //add str... for (String str : list){ System.err.println(str); }
以上所述是小編給大家介紹的Java for循環(huán)詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java CyclicBarrier源碼層分析與應(yīng)用
這篇文章主要介紹了Java CyclicBarrier的源碼層分析與應(yīng)用,CyclicBarrier也叫同步屏障,可以讓一組線程達(dá)到一個屏障時被阻塞,直到最后一個線程達(dá)到屏障,感興趣的的朋友可以參考下2023-12-12Java、C++中子類對父類函數(shù)覆蓋的可訪問性縮小的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于Java、C++中子類對父類函數(shù)覆蓋的可訪問性縮小的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01Java加密解密工具(適用于JavaSE/JavaEE/Android)
這篇文章主要介紹了Java加密解密工具,適用于JavaSE/JavaEE/Android,感興趣的小伙伴們可以參考一下2016-04-04springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例
本文主要介紹了springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Java Socket+mysql實現(xiàn)簡易文件上傳器的代碼
最近在做一個小項目,項目主要需求是實現(xiàn)一個文件上傳器,通過客戶端的登陸,把本地文件上傳到服務(wù)器的數(shù)據(jù)庫(本地的)。下面通過本文給大家分享下實現(xiàn)代碼,感興趣的朋友一起看看吧2016-10-10SpringCloud?Gateway讀取Request?Body方式
這篇文章主要介紹了SpringCloud?Gateway讀取Request?Body方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03springboot項目中引入本地依賴jar包并打包到lib文件夾中
這篇文章主要介紹了springboot項目中引入本地依賴jar包,如何打包到lib文件夾中,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04