不使用while / If循环打印1到N个数字

时间:2018-08-08 05:48:50

标签: output

    *>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循环。

1 个答案:

答案 0 :(得分:1)

由于您要从1开始打印,直到达到某个初始输入数字,因此您的逻辑应该是先进行递归调用,然后再进行打印。像这样:

public static void printN(int x) {
    if (x > 1) {
        printN(x - 1);
    }

    System.out.println(x);
}

我认为您的递归方法不必返回任何值,因为要打印的数字/状态是通过方法调用传递的。还要注意,当数字变为1时,会发生基本情况。在这种情况下,我们不会再进行递归调用,而是自己打印,然后返回到更高的调用方。

Demo