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){
語句塊;
}
接下來詳細(xì)介紹Java for循環(huán)執(zhí)行順序的相關(guān)內(nè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é)合上面題目的代碼,來分析一下for循環(huán)到底是怎么操作的
首先打個(gè)斷點(diǎn)進(jìn)行測(cè)試
此時(shí)毫無疑問 j=0;
這就代表for循環(huán)先執(zhí)行的是int j=0;這個(gè)條件
接下來繼續(xù)
由于當(dāng)前的代碼并不能確定是否先執(zhí)行的是 j<10還是j++;
因此通過題目中的代碼進(jìn)行分析
可以發(fā)現(xiàn)在執(zhí)行完B的打印后,代碼開始執(zhí)行A的打印,也就是說
for循環(huán)先執(zhí)行賦值語句,再執(zhí)行判斷條件,
程序繼續(xù)走:
開始執(zhí)行for循環(huán)中的代碼了,
在往下走
此時(shí)開始打印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 synchronize底層實(shí)現(xiàn)原理及優(yōu)化
這篇文章主要介紹了Java synchronize底層實(shí)現(xiàn)原理及優(yōu)化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03JAVA獲得包含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ū)別,在開發(fā)過程中經(jīng)常會(huì)用到String這個(gè)類進(jìn)行操作。需要的朋友可以收藏下,方便下次瀏覽觀看2021-12-12