代码一:
static void draw(int x,int y)
{
if(x==9)
{
return;
}
for(int i=0;i<x;i++)
{
for(int j=0;j<y;j++)
{
System.out.print("*");
}
System.out.println();
}
}
代码二: static int drawmj(int x,int y)
{
                                 if(x<0)
                                   {
                                     return;
                                    }
                                  else
                                    {
int sum=x*y;
return sum;
                                    } }
为什么代码一,在编译的时候不会出错而代码二却提示 return有问题呢,是不是有返回值的函数,不可以用return;中途中断.

解决方案 »

  1.   

    if(x<0)
                                       {
                                         return;
                                        }
    这里有问题,如果x<0时,你这个程序就没有返回任何东西,而你的方法的返回值必须是int型的.
      

  2.   

    接着请教,代码1中函数类型声明为void的(也就是没有返回值),但是函数体中却有一个返回的方法return    这样不是矛盾了吗?而事实上这是可以的,为什么呢?
      

  3.   

    接着请教,代码1中函数类型声明为void的(也就是没有返回值),但是函数体中却有一个返回的方法return    这样不是矛盾了吗?而事实上这是可以的,为什么呢?
    ------------------------------------------------
    代码1中函数类型声明为void的,所以return后面不需要带参数,相当于结束函数,后面的处理被忽略
      

  4.   

    return语句用来结束method,而带返回值的method中的 return必须带一个 参数
      

  5.   

    带返回值的method中的return必须带一个值或者变量