public class NextNum { private static long num = 1; public static void PrintN(long num) {
if (num > 1) {
PrintN(num - 1);
}
System.out.print(num + " ");
} public static long getNum() {
return num;
} public static void setNum(long n) {
num = n;
}
}
if (num > 1) {
PrintN(num - 1);
}
System.out.print(num + " ");
} public static long getNum() {
return num;
} public static void setNum(long n) {
num = n;
}
}
if (num > 1) {
PrintN(num - 1);
}
System.out.print(num + " ");
}
/*
这段代码的执行情况:
当num = 2;
进行判断: if (num > 1) {PrintN(num - 1); }
这个时候,我们发现num=2>1,所以其会执行 PrintN(num - 1);
而不会跳到下面去执行 System.out.print(num + " ");
所以程序会执行 PrintN(2-1); 相当于 PrintN(1);
进行判断: if (num > 1) {PrintN(num - 1); }
系统发现num>1 不成立,所以不会执行下面的代码块,转而执行下面的
System.out.print(num + " ");
这个时候,就会输出1.
随后,执行完if(){ }里面的语句,程序就会执行下面的
System.out.print(num + " ");
就会打印出2.
*/
System.out.print(num + " ");
PrintN(num-1);
}