大俠們說了很多,不知道樓主是否明白
成都創(chuàng)新互聯(lián)公司服務項目包括宿豫網(wǎng)站建設、宿豫網(wǎng)站制作、宿豫網(wǎng)頁制作以及宿豫網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,宿豫網(wǎng)站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到宿豫省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
我再解釋一下
首先
1、為什么k執(zhí)行了兩次后會重新變成0
因為你可以看出,這里使用了三層循環(huán)
也就是for循環(huán)了三層
而k=0;k2;k++在最里面,也就是
j=0;j2;j++
當j從0開始,那么要執(zhí)行里面的代碼,也就是for(k=0;k2;k++)
當for(k=0;k2;k++)執(zhí)行完成后,往上一級回看,這個時候沒有滿足j=2,那么就繼續(xù)執(zhí)行,也就是j++,然后在執(zhí)行for(k=0;k2;k++)
這樣反復執(zhí)行
直到j=2為止,那么for(k=0;k2;k++)在往上一級回看,看i是否大于等于2
如果是的話那么將結束循環(huán),不是的話,將繼續(xù)執(zhí)行for(j=0;j2;j++),因為執(zhí)行了for(j=0;j2;j++),那么他要執(zhí)行下面的話,也就是for(k=0;k2;k++)
這個時候k又被賦值為0
講了一下,才發(fā)現(xiàn)很簡單的東西想要說的清楚其實也不容易,老師辛苦啦
只要理解了嵌套循環(huán)這個就很好理解了,嵌套循環(huán)外層的循環(huán)每執(zhí)行一次,內層循環(huán)完全遍歷一遍
圖中代碼,i=1
退出循環(huán)條件為i=9,就是說外層循環(huán)執(zhí)行遍歷9次
第一次循環(huán)的時候i=1,內層循環(huán)j=1
退出循環(huán)條件為j=i,i=1
j=1
內層循環(huán)執(zhí)行一次,打印出一個
*
后退出內層循環(huán),外層循環(huán)代碼繼續(xù)執(zhí)行到第8行,打印一個回車
然后外層循環(huán)執(zhí)行第二次,i=2,由內層循環(huán)條件J=i得出
本次內層循環(huán)執(zhí)行兩次,打印兩個
*
然后退出,外層循環(huán)打印一個回車,完成第二次遍歷,依次類推
每次多打印一個*,外層循環(huán)第9次執(zhí)行完畢后退出
控制臺留下
*
**
***
****
*****
******
*******
********
*********
for(i=0;i3;i++) { //.... for(j=0;j=i;j++) { //... } } 1、給 i 賦值。 2、判斷i3是否成立,成立則執(zhí)行第一個for循環(huán)語句快的代碼(此時i=0)。 3、到內循環(huán)時再同第1、2步(此時j=0,j=i成立)執(zhí)行內循環(huán)代碼。 3、第一次內循環(huán)結束后執(zhí)行j++,再判斷j=i是否成立(此時j=1),條件不成立。內循環(huán)結束。如果內循環(huán)后面不再有代碼就執(zhí)行i++(此時i=1)。 4、再重復2-3步,直到i=3時整個循環(huán)執(zhí)行完成。 不知道講明白沒有,有什么問題可以聯(lián)系我。
舉個例子 香煙見過吧
第一層for循環(huán)相當于一條煙那個包裝盒,里面有4包香煙(實際10包)
第二層for循環(huán)相當于一包煙那個包裝盒,里面四根香煙(實際20根)
x=0 相當于這條煙里面的第一包煙 拿出來
然后 就在這一包煙里面 一根一根抽出來,
抽之前, 此時 x=0(第一包煙) y=4(包中有四根煙)
抽出一根, 此時 x=0 (還是第一包煙 ) y=3(抽出了一根)
再抽出一根,此時 y=2 (抽出了第二根) 條件不符合(y2)
第二層循環(huán)結束
然后繼續(xù)拿第二包香煙(x=1)
然后 就在這一包煙里面 一根一根抽出來
然后 步驟同上
以此類推
.......
.
就是 一個執(zhí)行循序問題,先執(zhí)行外面的循環(huán):
1?? for(int i=0;i10;i++){
2???????? for(int j=0;j3;j++) {
3??????????? System.out.print("i*j="+i*j);
4??????? }
5??? }
6?? ....
....
當開始循環(huán)的時候,i=0,然后繼續(xù)運行,j=0,輸出i*j=0?
此時循環(huán)從j=1,i仍舊為0 ,? j的值為2
輸出結果為i*j=0,此時j++,j的值為2
循環(huán)從j=2,i仍舊為0? ,輸出結果為i*j=0
當j=3,不滿足j3跳出內部for循環(huán),執(zhí)行外部for循環(huán)第二行代碼,此時i++,i的值變?yōu)?
循環(huán)i=1,? j=0時,結果為i*j=0
i=1,j=1?? 結果為i*j=1;
;;;;;;
;;;;;
當i循環(huán)到9,j=2是,輸出循環(huán)結果為i*j=18
當i=10,不滿足i10,跳出外部循環(huán),執(zhí)行第6行
我只是拿一個例子給你講解的,我像這樣比給你講解概念好理解。
一,在for循環(huán)中,循環(huán)控制變量的初始化和修改都放在語句頭部分,形式較簡潔,且特別適用于循環(huán)次數(shù)已知的情況。在while循環(huán)中,循環(huán)控制變量的初始化一般放在while語句之前,循環(huán)控制變量的修改一般放在循環(huán)體中,形式上不如for語句簡潔,但它比較適用于循環(huán)次數(shù)不易預知的情況(用某一條件控制循環(huán))。
二,foreach不是一個關鍵詞,它指的是一種java里的循環(huán)方式,顧名思義代表對于每一個,表示每次給你要遍歷的東西生成一個降維對象,然后訪問。
比如說for(a:b),b是你要遍歷的東西,每次循壞都會生成一個b的子集a,a是你自己命名的一個元素,在這個for里我們訪問的就是這個a,每次循環(huán)都會訪問一個新的a。
三,看你圖里的代碼,balances是二維數(shù)組,假設看成一個矩陣,我們需要一行一行遍歷它,那么double[] row就是這個矩陣每行的意思。回到代碼,for(double[] row:balances)就是指對于balances的每行row,同樣的道理for(double b:row)的意思是對于每行row里的每個元素b,因為row是一維的數(shù)組,對它降維就是單個元素了。其中的row和b都是由你自己命名的,愛起什么名就起什么名,起完了名就可以在循環(huán)體里直接用了。遍歷順序就是順序遍歷,從前到后,跟你用i++,j++一樣。
這種寫法的好處在于,一是不需要管遍歷的次數(shù),二是你定義的子元素可以直接用,看起來比a[i]、a[j]方便。
代碼如下:
public?class?App?{
public?static?void?main(String[]?args)?{
int?n?=?9;
for?(int?i?=?0;?i??n;?i++)?{
int?m?=?((n?/?2)?-?Math.abs(i?-?(n?/?2)))?*?2?+?1;
for?(int?j?=?0;?j??m;?j++)?{
int?l?=?(m?/?2)?-?Math.abs(j?-?(m?/?2));
System.out.print((char)('A'?+?l));
}
System.out.println();
}
}
}
運行結果:
當前名稱:JAVA嵌套循環(huán)代碼 js嵌套循環(huán)
網(wǎng)頁URL:http://aaarwkj.com/article12/doodhgc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內鏈、小程序開發(fā)、軟件開發(fā)、動態(tài)網(wǎng)站、建站公司、網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)