更新時間:2020-11-02 17:35:46 來源:動力節(jié)點 瀏覽1810次
在java中有三大控制流程結(jié)構(gòu),循環(huán)結(jié)構(gòu)作為其中的一員,想必各位java程序員和正在學習java的朋友們都不陌生,我們在前面學習過do while語法及原理,今天這篇文章來介紹for循環(huán)嵌套這個結(jié)構(gòu)該怎樣使用,帶大家更進一步的學習循環(huán)結(jié)構(gòu)。
程序員的日常工作中,會遇到許多具有規(guī)律性的重復操作,在程序中就需要重復執(zhí)行某些語句這個時候可能就需要使用到循環(huán)結(jié)構(gòu)中的for循環(huán)嵌套。一組被重復執(zhí)行的語句稱之為循環(huán)體,能否繼續(xù)重復,取決于循環(huán)的終止條件。循環(huán)結(jié)構(gòu)是在一定條件下反復執(zhí)行某段程序的流程結(jié)構(gòu),被反復執(zhí)行的程序被稱為循環(huán)體。循環(huán)語句是由循環(huán)體及循環(huán)的終止條件兩部分組成的。
我們從例子中理解for循環(huán)嵌套該怎樣使用:在使用for循環(huán)實現(xiàn)1~100所有數(shù)字的求和,實現(xiàn)思路是:定義變量i,初始值從1開始,每循環(huán)一次加1,這樣就可以取到1~100的每一個整數(shù)了,那么求和怎么做呢?求和就是將1~100的每一個整數(shù)累加,這必然需要提前定義一個變量,使用變量實現(xiàn)累加,例如:a += 1,a += 2,a += 3...,代碼如下所示:
int sum = 0;
for(int i = 1; i <= 100; i++){
sum += i;
}
System.out.println("sum = " + sum);
運行結(jié)果如下所示:

通過以上for循環(huán)程序我們可以學到什么?編程語言當中的累加可以使用擴展類賦值運算符+=來實現(xiàn),另外sum變量為什么定義到for循環(huán)外面,而不是定義到循環(huán)體當中呢?那是因為當定義到循環(huán)體內(nèi)之后,每一次循環(huán)體在執(zhí)行的時候,都會重新定義sum變量,這樣會讓sum變量歸0,無法達到累加的效果。
接下來,我們在以上程序的基礎(chǔ)之上實現(xiàn)1~100所有奇數(shù)的和,編程思路是:在累加之前先判斷變量i是否為奇數(shù),如果是奇數(shù)則累加,這就需要在sum += i外面套一個if語句進行控制,代碼如下所示:

運行結(jié)果如下所示:

其實以上的方式是將每一個數(shù)字取出來,然后再判斷是否為奇數(shù),這種方式會導致循環(huán)次數(shù)達到100次,實際上可以換成另外一種解決方案,假設(shè)從1開始,每次累加2,那么每次取出的數(shù)字為1,3,5...,這樣正好每次取出的數(shù)字都是奇數(shù),可以直接累加了,這樣循環(huán)的次數(shù)基本上會減半,效率則提高了,這種代碼既優(yōu)雅,又高效。請看以下代碼:

運行結(jié)果依然是“sum=2500”
以上演示的所有循環(huán)都是單層的,循環(huán)當中可以for嵌套循環(huán)嗎?答案是:當然可以,之前我們就說過所有控制語句都是可以嵌套使用的,當循環(huán)A中嵌套循環(huán)B的時候就等于在A循環(huán)體中的代碼是B循環(huán)??梢园袮循環(huán)體當中的B循環(huán)看做是一段普通的java代碼。接下來我們看一段代碼:

運行結(jié)果如下圖所示:

分析以上for循環(huán)嵌套,請看下圖:

希望通過上面舉的例子,可以使朋友們理解for循環(huán)嵌套的使用,for循環(huán)結(jié)構(gòu)可以說是在實際工作中使用頻率很高的一種語句結(jié)構(gòu),所以for循環(huán)嵌套的內(nèi)容對于java程序員來說是必須掌握的,希望大家在學完for循環(huán)嵌套的基礎(chǔ)上,再通過java教程來學習更多關(guān)于java語法結(jié)構(gòu)的內(nèi)容,提高自己的java技能。