我正在尝试创建一个返回值的递归方法,并在我的主方法中打印该值。我对如何在 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;
}
}
最佳答案
递归方法有两个特点:
- 它要求自己提供解决方案
- 它有一个基本情况,其中包含递归调用必须停止的位置。
您的asterisks
方法不满足其中任何一个。由于这看起来像家庭作业,我只会提供有关此方法应该如何的解释,实现将由您负责:
- 由于您的方法需要返回星号,因此最好返回
String
而不是Integer
。这个String
将包含所有需要的*
。 - 定义基本情况。这可能是
number
值为 1 的地方。 - 如果
number
大于1,那么您应该返回一个星号以及使用整个结果所需的其余星号调用asterisks
方法的结果。<
关于java - 递归方法返回星号中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544374/