*>printing 1 to a numbers without using if and while ,but this is not working in java
**class printOut{//class started here
static int PrintN(int x)
{
(x>1)?(System.out.println(PrintN(x--))):System.out.println(x);
//above code is recursively calling PrintN to print decreemented value
return 0;
}
public static void main(String args[])
{
int a=10;//initialized variable
PrintN(a);//calling the static method wihout creating its object
}
}***
//我的问题是编写一个程序来找出1到n个数字,而无需使用while或if循环。
答案 0 :(得分:1)
由于您要从1开始打印,直到达到某个初始输入数字,因此您的逻辑应该是先进行递归调用,然后再进行打印。像这样:
public static void printN(int x) {
if (x > 1) {
printN(x - 1);
}
System.out.println(x);
}
我认为您的递归方法不必返回任何值,因为要打印的数字/状态是通过方法调用传递的。还要注意,当数字变为1时,会发生基本情况。在这种情况下,我们不会再进行递归调用,而是自己打印,然后返回到更高的调用方。