不知道各位有没有遇到这样的问题,我是遇到了 ,我写了一个类,类里有一个方法,有一个返回值,但我在这个方法里的判断语句里递归调用该方法,于是出现了问题,无论会不会出现递归调用,这个方法返回的值总是第一个值,无法得到出现递归调用时产生的值,class judge_num
    {
        public int judgeme(int[] arry)
        {
            get_random r2 = new get_random();
            int get_ra = 0;
            get_ra = r2.rad();            for (int m = 0; m < arry.Length; m++)
            {                if (arry[m].Equals(get_ra))
                {
                    judgeme(arry);
                    break;
                }
            }
            return get_ra;
        }
    }

解决方案 »

  1.   

    根据你的写法 就是这样结果。你的递归的返回值,并没有接收,并且递归中改变的get_ra 只是个局部变量与第一次调用的返回值没有任何关系。
      

  2.   

    有的,你直接写Console.WriteLine就不用那么麻烦了,有时候也不要太为难自己了