蜜桃av色欲a片精品一区,麻豆aⅴ精品无码一区二区,亚洲人成网站在线播放影院在线,亚洲 素人 字幕 在线 最新

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價值

  遞歸與循環(huán)淺析

發(fā)布日期:2022/10/6 23:08:41      瀏覽量:

一、遞歸與循環(huán)的對比

  • 遞歸會帶來大量的函數(shù)調(diào)用。這是不好的

  • 在計算環(huán)節(jié)特別大的前提下,遞歸就是不好的,因?yàn)檫f歸是先調(diào)用,再計算。

    • 在大量計算的前提下可能會造成棧溢出(StackOverFlow)
    • 如下圖:

    

  • 循環(huán)是先計算再調(diào)用,計算完后會調(diào)用的方法會從棧中抹去,最后將結(jié)果輸出

  • 能不用遞歸就不用遞歸
  • 小計算可以考慮用遞歸,大計算就不考慮了

二、遞歸講解

1、概念

  • A方法調(diào)用B方法,我們很容易理解

  • 遞歸就是:A方法調(diào)用A方法!就是自己調(diào)用自己

2、遞歸的用處

  • 遞歸策略只需要少量的程序就可以描述出解題過程所需要的多次重復(fù)計算,大大減少了程序的代碼量

  • 遞歸的能力在于用有限的語句來定義對象的無限集合

3、遞歸結(jié)構(gòu)包含兩個部分

  • 遞歸頭:什么時候不調(diào)用自身方法。如果沒有頭,將陷入死循環(huán)

  • 遞歸體:什么時候需要調(diào)用自身方法

4、代碼如下

         

5、遞歸的壞處

  • 遞歸會帶來大量的函數(shù)調(diào)用。這是不好的

  • 在計算環(huán)節(jié)特別大的前提下,遞歸就是不好的,因?yàn)檫f歸是先調(diào)用,再計算。循環(huán)是先計算再調(diào)用

三、循環(huán)講解

1、while 循環(huán)

  • 基本結(jié)構(gòu)

    1 while( 布爾表達(dá)式 ){ 2 //循環(huán)結(jié)構(gòu)  3 }
  • 只要布爾表達(dá)式為true,循環(huán)就會一直執(zhí)行下去

  • 循環(huán)條件一直為true就會造成無限循環(huán)【死循環(huán)】,這是在正常程序下需要避免的

  • 少部分情況下需要循環(huán)一直執(zhí)行下去。例如服務(wù)器的請求響應(yīng)監(jiān)聽等

  • 復(fù)制代碼
    1 //例子:從1加到100求和 2 //代碼主要部分 3 while(i<=100){ 4 sum+=i; 5 i++; 6 }
    復(fù)制代碼

2、do...while循環(huán)

  • 對于while’語句而言,如果不滿足條件,則不能進(jìn)入循環(huán),但有時候我們需要即使不滿足條件的情況下,程序也要至少執(zhí)行一次

  • do.....while循環(huán)和while循環(huán)相似,不同的是:do....while循環(huán)至少會執(zhí)行一次

  • 語法結(jié)構(gòu)

    1 do{ 2 //代碼語句 3 }while(布爾表達(dá)式);
  • while與do-while的區(qū)別

    while是先判斷后執(zhí)行。do-while是先執(zhí)行后判斷

    do-while總是保證循環(huán)體至少會被循環(huán)一次!這是它們的主要區(qū)別

  • 復(fù)制代碼
    1 //例子:從1加到100求和 2 //代碼主要部分 3 do{ 4 sum+=i; 5 i++; 6 }while(i<=100); 
    復(fù)制代碼

3、for 循環(huán)

  • 雖然所有的循環(huán)結(jié)構(gòu)都可以使用while和do....while表示,但Java提供了另一種語句:for循環(huán)

  • for循環(huán)相較與其它二者更高效,執(zhí)行速度快

  • 格式如下

    1 for(初始化;布爾表達(dá)式;迭代式){ 2 //代碼語句 3 }

4、在Java5種引入了一種主要用于數(shù)組的增強(qiáng)型for循環(huán)

  • 主要是用來遍歷數(shù)組集合

  • 格式如下:

    復(fù)制代碼
     1 for(聲明語句:表達(dá)式){  2 //代碼語句  3  }  4   5   6 //例子如下:  7 int[] numbers={1,2,3,4,5};  8 for(int x:numbers){  9 System.out.println("數(shù)組中的元素為"+x) 10 }
    復(fù)制代碼
  • 聲明語句:聲明新的局部變量,該變量的類型必須和數(shù)組元素的類型匹配。

    • 其作用域限定在循環(huán)語句塊,其值與此時數(shù)組元素的值相等。

  • 表達(dá)式:表達(dá)式是要訪問的數(shù)組名,或者是返回值為數(shù)組的方法。

  • 另加:數(shù)組的靜態(tài)與動態(tài)定義



  業(yè)務(wù)實(shí)施流程

需求調(diào)研 →

團(tuán)隊(duì)組建和動員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運(yùn)行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗(yàn)積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生