java - 递归方法返回星号中的值

标签 java recursion methods return

我正在尝试创建一个返回值的递归方法,并在我的主方法中打印该值。我对如何在 main() 中返回并打印一行 X 星号 (**..) 感到困惑 X 是命令行上的整数。
例如命令行参数是 5。
它应该输出到: *****

到目前为止我的代码:

public static void main(String[] commandlineArguments){
      if(commandlineArguments.length == 0){
         System.out.println("Please enter a least one commandline!");
      }
      else{
         Integer number = new Integer(0); //initialize number
         try{
            Integer x = Integer.parseInt(commandlineArguments[0]);
         }
         catch(NumberFormatException exception){ //NumberFormatException
            System.out.println(exception+" is not a integer!");
            System.exit(1); //end program
         }
         Integer num1 = recursiveMethods.asterisks(number); //A (return address)
         System.out.println(num1);
      }
   }

   public static Integer asterisks(Integer number){
      String asterisks1 = "*";

      for(int i = 0; i < number; i++){
         return i;
      }
      return number;

   }
}

最佳答案

递归方法有两个特点:

  1. 它要求自己提供解决方案
  2. 它有一个基本情况,其中包含递归调用必须停止的位置。

您的asterisks方法不满足其中任何一个。由于这看起来像家庭作业,我只会提供有关此方法应该如何的解释,实现将由您负责:

  1. 由于您的方法需要返回星号,因此最好返回 String 而不是 Integer。这个String将包含所有需要的*
  2. 定义基本情况。这可能是 number 值为 1 的地方。
  3. 如果number大于1,那么您应该返回一个星号以及使用整个结果所需的其余星号调用asterisks方法的结果。<

关于java - 递归方法返回星号中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544374/

相关文章:

java - 弹跳球小程序

javascript - 在递归算法的 return 语句期间我的变量值如何变化?

c# - 为什么不在构造函数中调用可覆盖的方法?

java - while循环Int return方法内部完全死了

python - 看门狗观察者法

java - 与rabbitmq java客户端API交换的列表绑定(bind)

java - 将方法转换为具有多种数据类型的泛型

java - .Net 与 Java 的移动开发对比。你怎么看?

c++ - 具有无限子节点的树的递归函数。 C++

c - 递归导致的段错误