代码一:
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;中途中断.
if(x<0)
{
return;
}
这里有问题,如果x<0时,你这个程序就没有返回任何东西,而你的方法的返回值必须是int型的.
up顶了
一下都给解决了
接着请教,代码1中函数类型声明为void的,但是函数体中却有一个返回的方法return 这样不是矛盾了吗?而事实上这是可以的,为什么呢?
接着请教,代码1中函数类型声明为void的,但是函数体中却有一个返回的方法return 这样不是矛盾了吗?而事实上这是可以的,为什么呢?
------------------------------------------------
代码1中函数类型声明为void的,所以return后面不需要带参数,相当于结束函数,后面的处理被忽略
return语句用来结束method,而带返回值的method中的 return必须带一个 参数
带返回值的method中的return必须带一个值或者变量