我的代碼是這樣的
package dao;
import java.util.Date;
public class Test {
static int i=0;
static boolean a;
public boolean tt(int a){
if(a == 0){
Date d = new Date();
return true;
}
a = a - 1;
System.out.println("a - 1 = "+a);
if(tt(a)){
i++;
System.out.println("a = "+a);
return true;
}else{
return false;
}
}
public static void main(String[]agrs){
Test t = new Test();
System.out.println(t.tt(5));
System.out.println("i = " + i);
}}
結果
a - 1 = 4
a - 1 = 3
a - 1 = 2
a - 1 = 1
a - 1 = 0
a = 0
a = 1
a = 2
a = 3
a = 4
true
i = 5問題是:為什麼i=5?
為什麼打印5次
a = 0
a = 1
a = 2
a = 3
a = 4 怎麼不是打印一次勒?
package dao;
import java.util.Date;
public class Test {
static int i=0;
static boolean a;
public boolean tt(int a){
if(a == 0){
Date d = new Date();
return true;
}
a = a - 1;
System.out.println("a - 1 = "+a);
if(tt(a)){
i++;
System.out.println("a = "+a);
return true;
}else{
return false;
}
}
public static void main(String[]agrs){
Test t = new Test();
System.out.println(t.tt(5));
System.out.println("i = " + i);
}}
結果
a - 1 = 4
a - 1 = 3
a - 1 = 2
a - 1 = 1
a - 1 = 0
a = 0
a = 1
a = 2
a = 3
a = 4
true
i = 5問題是:為什麼i=5?
為什麼打印5次
a = 0
a = 1
a = 2
a = 3
a = 4 怎麼不是打印一次勒?
楼主的这个a是参数变量int a
lz把两个类型的变量起一样的名字了,最好换换
if(tt(4))
a-1=3
if(tt(3))
a-1=2
if(tt(2))
a-1=1
if(tt(1))
a-1=0
if(tt(0))
tt(0)返回true
执行i++
输出a=0
返回true
执行i++
输出a=1
返回true
执行i++
输出a=2
返回true
执行i++
输出a=3
返回true
执行i++
输出a=4返回true
输出truei共加了5次,所以i=5
那個static boolean a;是沒用的.我忘刪勒. 再次感謝hitprince(工大王子)
我還想問你一下.就是後面5次打印的.
我不知道為什麼會打印五次,就算打印五次.
我覺得應該都是a = 0;啊.
為什麼1,2,3,4都出來勒.我減後並沒有再加啊. 這種方法叫“递归”? 學習勒..
我數據結構學得不好..見笑勒.嘿嘿..
http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html