日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

详解java方法与递归

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详解java方法与递归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一 方法(類似于C語言中的函數)

1 方法的基本語法:

2 注意事項

3 方法調用的執行過程

4 方法的重載

重載的規則(滿足以下三個特點):

5 方法的意義

二 遞歸

前提條件:

概念:

遞歸執行過程分析:

執行過程圖?

遞歸的總結:

三 遞歸練習


一 方法(類似于C語言中的函數)

1 方法的基本語法:

// 方法定義 public static 方法返回值 方法名稱([參數類型 形參 ...]){方法體代碼;[return 返回值]; } // 方法調用 返回值變量 = 方法名稱(實參...);

示例:

import java.util.Scanner;public class demotwo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int i = sc.nextInt();int j = sc.nextInt();int ret=add(i,j);//方法的調用System.out.println(ret);}//利用方法實現兩個數相加public static int add(int a,int b){//定義方法return a+b;} }

2 注意事項

(1)public static是關鍵字,具有特殊的含義

(2)方法定義時,必須要指定參數類型,可以沒有參數

(3)方法定義時,可以有返回值,也可以沒有返回值,沒有返回值時,返回類型應該定義為void

(4)方法定義時的參數為形參,方法調用時就是實參

(5)方法必須定義在類的里面,代碼書寫調用的位置可以在main()函數上方,也可以寫在下方

(6)java中不存在函數聲明這種概念

3 方法調用的執行過程

(1)定義方法的時候,不會執行方法的代碼,只有調用的時候才會執行

(2)方法被調用的時候,實參的值會賦值給形參

(3)參數傳遞完畢后,就會執行方法體代碼

(4)當方法執行完畢之后(遇到return語句),回到方法被調用的位置,繼續往下執行

(5)方法是可以被多次調用的

例題:

public class demotwo {//計算 1! + 2! + 3! + 4! + 5!public static void main(String[] args) {int su = 0;for(int i=1;i<=5;i++){//產生五個數據,利用求階乘,把五個數的階乘相加起來su += sum(i);}System.out.println(su);}public static int sum(int n){int ret =1;for(int j = 1;j<=n;j++){//實現階乘的辦法ret *=j;}return ret;} }

4 方法的重載

重載的規則(滿足以下三個特點):

在同一個類下或者繼承關系下:

(1)方法名相同

(2)方法的參數不同(參數的個數或者參數類型不同)

(3)參數的返回值類型不影響重載(可以理解為與返回值類型沒有什么關系)

5 方法的意義

(1)能夠模塊化的組織代碼(尤其是代碼規模是比較復雜的時候)

(2)讓代碼更加簡單,提高代碼的可讀性

(3)可以重復利用,一個代碼可以在多個位置調用

(4)可以直接調用現有方法開發,比較便捷

二 遞歸

前提條件:

(1)有一個趨于終止的條件

(2)自己要調用自己

概念:

遞歸:一個方法在執行的過程中調用自身,就稱為遞歸

遞歸執行過程分析:

public static void main(String[] args) {int n = 5;int ret = factor(n);System.out.println("ret = " + ret); } public static int factor(int n) {System.out.println("函數開始, n = " + n);if (n == 1) {System.out.println("函數結束, n = 1 ret = 1");return 1;}int ret = n * factor(n - 1);System.out.println("函數結束, n = " + n + " ret = " + ret);return ret; } // 執行結果 函數開始, n = 5 函數開始, n = 4 函數開始, n = 3 函數開始, n = 2 函數開始, n = 1 函數結束, n = 1 ret = 1 函數結束, n = 2 ret = 2 函數結束, n = 3 ret = 6 函數結束, n = 4 ret = 24 函數結束, n = 5 ret = 120 ret = 120

執行過程圖?

?結合執行過程圖來看遞歸就會顯得思路比較清晰,解決問題就會顯得有方法與思路

遞歸的總結:

對于遞歸,有些問題使用遞歸就會顯得非常簡單(比如二叉樹以及斐波那契數列等),有些程序代碼遞歸與非遞歸(迭代循環)都可以去實現,那么這個時候就推薦大家使用非遞歸(迭代循環),效率會顯得高一些。

三 遞歸練習

面對遞歸,我們需要一些典例來開導一下我們,典例鏈接:

CSDN

總結

以上是生活随笔為你收集整理的详解java方法与递归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。