java中for循環(huán)執(zhí)行的順序圖文詳析
for循環(huán)基礎(chǔ)
for循環(huán)是最靈活也是最常用的循環(huán)結(jié)構(gòu),表達(dá)式一般如下:
for(條件表達(dá)式1;條件表達(dá)式2;條件表達(dá)式3){
語(yǔ)句塊;
}
接下來(lái)詳細(xì)介紹Java for循環(huán)執(zhí)行順序的相關(guān)內(nèi)容,先看看一道面試題,
來(lái)自小米筆試
static boolean foo(charc) { System.out.print(c); return true; } public static void main(String[] args) { int i =0; for(foo('B');foo('A')&&(i<2);foo('C')) { i++; foo('D'); } }
上述代碼Java函數(shù)的執(zhí)行結(jié)果是什么()
A. BADCBDCB
B. BADCADCA
C. BACDBACD
D.不確定
輸入IDEA的結(jié)果如下:
當(dāng)然根據(jù)結(jié)果可以直接選擇 --------B
但是也得搞清楚緣由;
以下貼上個(gè)人理解
分析理解
平時(shí)看到的for循環(huán)都是以下的樣子:
for (int j = 0; j <10 ; j++) { System.out.println(j); }
根據(jù)這個(gè)代碼結(jié)合上面題目的代碼,來(lái)分析一下for循環(huán)到底是怎么操作的
首先打個(gè)斷點(diǎn)進(jìn)行測(cè)試
此時(shí)毫無(wú)疑問(wèn) j=0;
這就代表for循環(huán)先執(zhí)行的是int j=0;這個(gè)條件
接下來(lái)繼續(xù)
由于當(dāng)前的代碼并不能確定是否先執(zhí)行的是 j<10還是j++;
因此通過(guò)題目中的代碼進(jìn)行分析
可以發(fā)現(xiàn)在執(zhí)行完B的打印后,代碼開(kāi)始執(zhí)行A的打印,也就是說(shuō)
for循環(huán)先執(zhí)行賦值語(yǔ)句,再執(zhí)行判斷條件,
程序繼續(xù)走:
開(kāi)始執(zhí)行for循環(huán)中的代碼了,
在往下走
此時(shí)開(kāi)始打印C,
由此總結(jié)出for循環(huán)的執(zhí)行順序:
總結(jié)
到此這篇關(guān)于java中for循環(huán)執(zhí)行順序的文章就介紹到這了,更多相關(guān)java for循環(huán)執(zhí)行順序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java的WeakHashMap源碼解析及使用場(chǎng)景詳解
這篇文章主要介紹了Java的WeakHashMap源碼解析及使用場(chǎng)景詳解,Map本身生命周期很長(zhǎng),需要長(zhǎng)期貯留內(nèi)存中,但Map中的Entry可以刪除,使用時(shí)可以從其它地方再次取得,需要的朋友可以參考下2023-09-09Java synchronize底層實(shí)現(xiàn)原理及優(yōu)化
這篇文章主要介紹了Java synchronize底層實(shí)現(xiàn)原理及優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03手把手教你寫(xiě)一個(gè)spring IOC容器的方法
這篇文章主要介紹了手把手教你寫(xiě)一個(gè)spring IOC容器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04JAVA獲得包含0-9、a-z、A-Z范圍內(nèi)字符串的的隨機(jī)數(shù)實(shí)例
這篇文章主要介紹了JAVA獲得包含0-9、a-z、A-Z范圍內(nèi)字符串的的隨機(jī)數(shù)實(shí)例,包含隨機(jī)數(shù)字、隨機(jī)字符串的獲取方法,需要的朋友可以參考下2014-07-07SpringBoot全局異常處理之解決404/500錯(cuò)誤
在搭建項(xiàng)目框架的時(shí)候用的是springboot,想統(tǒng)一處理異常,但是發(fā)現(xiàn)404的錯(cuò)誤總是捕捉不到,總是返回的是springBoot自帶的錯(cuò)誤結(jié)果信息,這篇文章主要給大家介紹了關(guān)于SpringBoot全局異常處理之解決404/500錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2023-11-11java中String、StringBuffer與StringBuilder的區(qū)別
這篇文章主要介紹了java 中String和StringBuffer與StringBuilder的區(qū)別,在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)用到String這個(gè)類(lèi)進(jìn)行操作。需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12