showThisAnorther(1);
void showThisAnorther(int index)
{
for (int i = 0; i < 5; i++)
{
num++;
int k = i;
lock (this)
{
Debug.Log(“start>>>>>” + i + “>>>>” + k+">>>>>"+index);
Thread.Sleep(1000);
Debug.Log(“end>>>>>” + i + “>>>>” + k + “>>>>>” + index);
}
if (num < 5)
{
showThisAnorther(index);//递归 一直卡着 所以i是0
}
else
{
break;
}
}
}
以上代码输出结果为下图 总共输出9次
调用了一次showThisAnorther 方法 那么for循环是5次那么会执行5次
下面又递归调用了一次showThisAnorther 方法 注意num得变量 第一次调用时候showThisAnorther num从0开始递增到4 这里调用了5次 下面递归一次 num是从1开始得 那么num递增到5又执行了4次 num=5时 for循环 break 跳出
注意 :递归时 会一直卡在那一帧 知道有结果 ,在上面代码中 因为num<5 所以一直递归调用自身,那么i一直等于零
当num 等于0得时候输出 1次
当num等于1得时候 输出一次 递归又输出一次 所以两次
当num等于2得时候输出一次 递归又输出一次 所以两次
当num等于3得时候输出一次 递归又输出一次 所以两次
当num等于4得时候输出一次 递归又输出一次 所以两次 总共9次