本帖最后由 mengjun5200 于 2010-07-25 20:58:07 编辑

解决方案 »

  1.   

    在最后一个}前 return 0;
      

  2.   

    public int num(n)
    {
    if(n<=10)
    {n=10;
    return n;
    }
    else
    {
    for(int i=1;i<11;i++)
    {
    if(n>30i)
    {
    n=i*n;
    break;
    }
    }
    return n;
    }
    }
      

  3.   

    if else 并没有列举所有的情况
      

  4.   

    有if就要有else,最后少一个else
      

  5.   

    少了个ELSE,好奇问下。30i指代什么?
      

  6.   

    在第一个else的反括号前加return,因为程序会在最外层的分支判断语句里寻找是否返回了值,还有,30i是什么,中间没有操作符吗?
      

  7.   


    public int num(int n)
            {
                if (n <= 10)
                {
                    n = 10;
                    return n;
                }
                else
                {
                    for (int i = 1; i < 11; i++)
                    {
                        if (n > 30 * i)
                        {
                            return i * n;//只有当n大于30i的时候才返回值
                            break;
                        }
                    }
                    return -1;
                }
            }
      

  8.   

    “并非所有的代码都有返回值的问题”这句话翻译的不够准确,所以才会让你有误解这句话的原意是“并非所有的代码分支都有返回值的问题”,if---else按中文讲是“花开两枝,各表一枝”
    if(n>30i)你的代码只处理了一个分支,另外一个else没处理,他自然会报错
      

  9.   

    既然声明了有返回值的方法(int),那么该方法体就要有相应类型的返回值(int),而你只是if..else了几种情况,所有情况下都应该return的。