(11.06)Java小知识
最近由于課程變化,學習計劃也跟著改動,留給我寫博客的時間也越來越少。今天晚上沒有課,抽空過來圖書館寫一寫,許久不寫感覺都有點陌生了!
今天要和大季家分享的銜接了上一篇博客,是關(guān)于方法的嵌套調(diào)用與遞歸調(diào)用,是學習方法過程中不可避免的兩個版塊,大家一起來看一看!
關(guān)于嵌套調(diào)用:
在Java語言中,各個方法之間是平行的,不存在上一級方法和下一級方法的問題,并且在Java語言中允許在一個方法的定義中出現(xiàn)對另一個方法的調(diào)用,于是便有了方法的嵌套調(diào)用,即在被調(diào)用的方法中又電泳其他方法。例如:執(zhí)行main方法中調(diào)用a方法的語句時,即轉(zhuǎn)去執(zhí)行a方法,在a方法中調(diào)用b方法時,又轉(zhuǎn)去執(zhí)行b方法,b方法執(zhí)行完畢返回a方法的斷點繼續(xù)執(zhí)行,a方法執(zhí)行完畢返回main方法的斷點繼續(xù)執(zhí)行。
計算 s=(2*2)!+(3*3)!?
public class demo{public static void main(String[] args){//int i;long s=0;for(i=2;i<=3;i++) s=s+fun1(i);System.out.println(s);}static long fun1(int p) {//定義fun1方法用來計算平方值并調(diào)用fun2方法int k;long r;k=p*p;r=fun2(k);return r;}static long fun2(int q) {//計算階乘值的方法fun2int i;long c=1;for(i=1;i<=q;i++) c=c*i;return c;} }解析:在主程序中,執(zhí)行循環(huán)程序依次把i值作為實參調(diào)用方法fun1求i的平方的值。在fun1中又發(fā)生了對方法fun2的調(diào)用,這時是把i的平方的值作為實參去調(diào)用fun2,在fun2中完成(i*i)!的計算。fun2執(zhí)行完畢之后把C值(即i*i!)返回給fun1,再由fun1返回主方法實現(xiàn)疊加。
關(guān)于遞歸調(diào)用:
其實遞歸方法就是直接或者間接調(diào)用自身的方法。許多數(shù)學函數(shù)都是使用遞歸來定義的,這樣的 函數(shù)在Java中也能來定義與調(diào)用。設(shè)計算n!的方法為fun1,根據(jù)n階乘的遞歸定義方式,計算fun1的遞歸算法可以簡單地描述如下:
if(n==0) return 1;else return n*fun1(n-1);例:輸入一個非負整數(shù),顯示該數(shù)的階乘值。
import java.util.Scanner;public class demo{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.println("請輸入一個非負整數(shù):");int n = input.nextInt();System.out.println(n+"的階乘值是:"+fun1(n));}public static long fun1(int n) {if (n==0) return 1;else return n*fun1(n-1);} }其實嵌套調(diào)用與遞歸調(diào)用都只是方法的拓展,只是前者是調(diào)用另一個方法,而后者是調(diào)用自身的方法。
?
轉(zhuǎn)載于:https://www.cnblogs.com/ziyihuang/p/7794927.html
總結(jié)
以上是生活随笔為你收集整理的(11.06)Java小知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十、Hadoop学习笔记————Hive
- 下一篇: 滚动条加载功能实现(懒加载)