下面是兩個具有兩個不同功能的遞歸代碼。[1]我使用遞歸代碼檢查回文是這樣的:import java.util.Scanner;public class CheckPalindromeRecursion {public static boolean recursion(String pal) { if (pal.length() == 0 || pal.length() == 1) { return true; } else if (pal.charAt(0) == pal.charAt(pal.length() - 1)) { return recursion(pal.substring(1, pal.length() - 1)); } return false;}public static void main(String[] args) { System.out.println("Enter the String for check:"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); if(recursion(str)) System.out.println(str + " is a palindrome"); else System.out.println(str + " is not a palindrome"); scan.close();}}[2]我使用遞歸代碼反轉一個數字是這樣的:import java.util.Scanner;public class ReverseNumberRecursion {public static void reverse(int numb) { if (numb < 10) { System.out.print(numb); return; } else { System.out.print(numb % 10); reverse(numb/10); }}public static void main(String[] args) { System.out.print("The number you want to reverse is: "); Scanner in = new Scanner(System.in); int numb = in.nextInt(); in.close(); System.out.print("The reversed number is: "); reverse(numb);}}為什么我必須在 - [1]:中使用返回,但在 - [2]:中不需要使用返回? return recursion(pal.substring(1, pal.length() - 1)); reverse(numb/10);
1 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
這是因為函數中的參數
public static boolean recursion(String pal) -> returns data of type boolean
public static void reverse(int numb) -> doesnot return any data so intialize with void
每當我們想在我們使用返回的另一個函數中使用特定函數的數據時,返回語句是基于用戶要求的
添加回答
舉報
0/150
提交
取消