为什么我必须在回文检查中使用 return?

下面是两个具有两个不同功能的递归代码。


[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);


当年话下
浏览 95回答 1
1回答

MMMHUHU

这是因为函数中的参数public static boolean recursion(String pal) -> returns data of type boolean&nbsp;public static void reverse(int numb) -> doesnot return any data so intialize with void每当我们想在我们使用返回的另一个函数中使用特定函数的数据时,返回语句是基于用户要求的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java