java - 不可达语句,递归(java)

标签 java recursion

我正在尝试解决一个简单的问题,获取一个字符串并反转字符串中单词的顺序。我的代码如下:

public class reverse
{
public static String rev (String a){
    String[] arr = a.split(" ");
    int count = arr.length;
    String result;
    if (count <= 1){
        result = arr[count];
        return result;
    }else{
        String temp = arr[count];
        return temp;
        result = rev(temp);
        count --;
    }
  }
}

我的困境是,在编译时,我在第 13 行收到一个错误,指出“无法访问语句”。就递归而言,我没有看到问题,但任何解决此问题的帮助将不胜感激。

注意:我知道没有 main 方法,我正在使用 BlueJ IDE,可以在其中测试各个方法。

最佳答案

在递归之后,您需要返回您的else block 。此外,数组从 0 开始并包含 length - 1 元素。你可以做类似的事情,

int count = arr.length - 1;
if (count < 1) {
    result = arr[count];
} else { 
    String temp = arr[count];
    // return temp;
    result = temp + " " + rev(a.substring(0, a.lastIndexOf(' ')));
    // count--; // <-- updates local count uselessly.
}
return result;

关于java - 不可达语句,递归(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34803066/

相关文章:

javascript - Ember删除记录太多递归

java - 从 Android fragment 调用时权限被拒绝。使用权限已设置

java - 在 Java 上运行网络蜘蛛

java - 设置布局的 Alpha/Opacity

java - 从Java更改为Android的空指针异常

java - 由于 spring security,无法访问 spring-boot 项目中的 Assets

recursion - 生成 ‘n’ 位的所有字符串。假设 A[0....n-1] 是一个大小为 n 的数组

java - 递归的逻辑是什么

c++ - 计算二叉搜索树 C++ 中的节点数

c - 为什么这个函数给我无限循环?