我的代碼是這樣的
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  怎麼不是打印一次勒?

解决方案 »

  1.   

    a   =   a   -   1;boolean 变量能这样吗
      

  2.   

    呵呵,4楼细心
    楼主的这个a是参数变量int a
    lz把两个类型的变量起一样的名字了,最好换换
      

  3.   

    你画一下图就可以了a-1=4
    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      
      

  4.   

    多謝各位大哥.
       那個static boolean a;是沒用的.我忘刪勒.     再次感謝hitprince(工大王子)
       我還想問你一下.就是後面5次打印的.
           我不知道為什麼會打印五次,就算打印五次.
              我覺得應該都是a = 0;啊.
               為什麼1,2,3,4都出來勒.我減後並沒有再加啊.  這種方法叫“递归”?  學習勒..
          我數據結構學得不好..見笑勒.嘿嘿..
       
      

  5.   

    结贴请参考
    http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html