缺少 return 语句,递归方法 [英] Missing return Statement, Recursive method

查看:66
本文介绍了缺少 return 语句,递归方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直收到错误

Palindrome.java:36: 错误:缺少返回语句 } ^ 1 错误

Palindrome.java:36: error: missing return statement } ^ 1 error

当我尝试编译时,对于实验室,我必须有一个递归方法,如果输入字符串是忽略非字母字符的回文,则该方法返回 true.那么问题是什么,我该如何解决.

when i try to compile, for the lab I have to have a recursive method which returns true if the input string is a palindrome ignoring non letter characters. So what is the problem and how do i go about fixing it.

package lab07;

import java.util.Scanner;

public class Palindrome{
   public static void main(String[] args){
      Scanner input = new Scanner(System.in);
      while ( input.hasNext()){
        String line =  normalise(input.next());
      System.out.println(isPalindrome(line));
      }
}
   public static String normalise(String line){
    String s = "";
    char[] chars = line.toCharArray();
    for (int i = 0; i < chars.length; i++){
        if ( Character.isLetter(chars[i]))
        s += Character.toLowerCase(chars[i]);
}
    return s;
   }
   public static boolean isPalindrome(String line){
    if ( line.length() > 1 ){
        if (line.charAt(0) == line.charAt(line.length()-1)){
            isPalindrome(line.substring(1, line.length()-1));
        }
        else
            return false;

    }
    else
        return true;
   }

推荐答案

您缺少内部 if 条件中的 return 语句

You're missing the return statement inside the inner if condition

   public static boolean isPalindrome(String line){
    if ( line.length() > 1 ){
        if (line.charAt(0) == line.charAt(line.length()-1)){
            isPalindrome(line.substring(1, line.length()-1));
               // MISSING RETURN HERE
        }
        else
            return false;

    }
    else
        return true;
   }

所有可能的条件都需要一个return.

这篇关于缺少 return 语句,递归方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆