/// <summary>
        /// 这个方法是利用传递过来的参数计算导热系数
        /// </summary>
        /// <returns></returns>
        public double get_thermal_conductivity( int i, int j)
        {
            double a = 49.37; ;
            double b = 0.0226;
            double result;
            double f;
            result = a - b * T[i, j];
            f = (ye_wen -T[i, j] )/(ye_wen - gu_wen);            if (T[i, j] < gu_wen)
            {                return result;
            }
            if (T[i, j] > ye_wen)
            {
                return 7 * result;
            }
            if (gu_wen < T[i, j] && T[i, j] < ye_wen)
            {
                return f * result + (1 - f) * 7 * result;
            }
        }
这个方法的目的是依据传递给方法的T[i, j]的大小判断来,返回不同的值,但程序报错,说错误 1 “my_first_windows.main_struct.get_thermal_conductivity(int, int)”: 并非所有的代码路径都返回值 请问对于这种,要先判断再返回相应值得方法该如何写呢?
谢谢大家了

解决方案 »

  1.   

    最后一个if完了之后没有return值
      

  2.   

    最后加个 return get_thermal_conductivity(i,j);
    不知道会造成死循环不? 具体的自己调试下
      

  3.   

    麻烦你能不能指点一下该怎么改这段代码呢?才能实现我想要的效果?万分感激ing
      

  4.   

    不太明白往哪里加代码return get_thermal_conductivity(i,j);
    请明示谢谢啦
      

  5.   

    不是已经告诉你了吗……
    你有三个if条件,里面都有返回值,但万一这三个条件都不符合你应该返回什么?        public double get_thermal_conductivity(int i, int j)
            {
                double a = 49.37; ;
                double b = 0.0226;
                double result;
                double f;
                result = a - b * T[i, j];
                f = (ye_wen - T[i, j]) / (ye_wen - gu_wen);            if (T[i, j] < gu_wen)
                {                return result;
                }
                if (T[i, j] > ye_wen)
                {
                    return 7 * result;
                }
                if (gu_wen < T[i, j] && T[i, j] < ye_wen)
                {
                    return f * result + (1 - f) * 7 * result;
                }            return 0;//把0改成你要返回的值
            }
      

  6.   

    if (T[i, j] < gu_wen)
    {return result;
    }
    else if (T[i, j] > ye_wen)
    {
       return 7 * result;
    }
    else if (gu_wen < T[i, j] && T[i, j] < ye_wen)
    {
       return f * result + (1 - f) * 7 * result;
    }
    else
    {
      //return what?你缺少了T[i, j]=gu_wen 和 T[i, j] = ye_wen的情况
    }
      

  7.   

    在所有可选条件都不满足时,LZ应该返回一个默认值,比如0或者-1
    调用方法时先判断结果>0则视为有效