xref: /aosp_15_r20/external/javassist/src/test/test1/Cflow.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package test1;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li public class Cflow {
run()4*f1fbf3c2SXin Li     public int run() {
5*f1fbf3c2SXin Li 	return k1(4);
6*f1fbf3c2SXin Li     }
7*f1fbf3c2SXin Li 
run2()8*f1fbf3c2SXin Li     public int run2() {
9*f1fbf3c2SXin Li 	return fact(5);
10*f1fbf3c2SXin Li     }
11*f1fbf3c2SXin Li 
fact(int n)12*f1fbf3c2SXin Li     public int fact(int n) {
13*f1fbf3c2SXin Li 	if (n <= 1)
14*f1fbf3c2SXin Li 	    return n;
15*f1fbf3c2SXin Li 	else
16*f1fbf3c2SXin Li 	    return n * fact(n - 1);
17*f1fbf3c2SXin Li     }
18*f1fbf3c2SXin Li 
k1(int i)19*f1fbf3c2SXin Li     public int k1(int i) {
20*f1fbf3c2SXin Li 	if (i > 1)
21*f1fbf3c2SXin Li 	    return k2(i - 1);
22*f1fbf3c2SXin Li 	else if (i == 1)
23*f1fbf3c2SXin Li 	    return i;
24*f1fbf3c2SXin Li 	else if (i == 0)
25*f1fbf3c2SXin Li 	    throw new RuntimeException();
26*f1fbf3c2SXin Li 	else
27*f1fbf3c2SXin Li 	    return -i;
28*f1fbf3c2SXin Li     }
29*f1fbf3c2SXin Li 
k2(int i)30*f1fbf3c2SXin Li     public int k2(int i) {
31*f1fbf3c2SXin Li 	if (i > 1)
32*f1fbf3c2SXin Li 	    return k1(i - 1);
33*f1fbf3c2SXin Li 	else if (i == 1)
34*f1fbf3c2SXin Li 	    return i;
35*f1fbf3c2SXin Li 	else if (i == 0)
36*f1fbf3c2SXin Li 	    throw new RuntimeException();
37*f1fbf3c2SXin Li 	else
38*f1fbf3c2SXin Li 	    return -i;
39*f1fbf3c2SXin Li     }
40*f1fbf3c2SXin Li }
41