Java函数:这么写的错误在哪?实际并不清楚返回值为空(void)和其他返回值类型有什么区别

Java函数:这么写的错误在哪?实际并不清楚返回值为空(void)和其他返回值类型有什么区别

问题描述:

Java函数:这么写的错误在哪?实际并不清楚返回值为空(void)和其他返回值类型有什么区别

图片说明

如果你希望主程序中使用函数的结果,比如你主程序显示输出,或者你需要这个结果继续参与运算,那么就要返回值。
比如你定义一个计算三角函数的程序,主程序如果需要求一个三角形的面积,就需要调用这个三角函数的结果,如果用void,就没办法办到。

这么写,不是所有的代码路径都有返回值。比如当a=-1的时候,就没有返回值。
正确的做法是在test1函数的最后加上 return 0; 或者返回别的。

 同是Java初学者,所以对很多的琐碎的知识掌握的一定很模糊,当时感觉可能已经掌握了,但是当自己用的时候才突然感觉到有点力不从心,模棱两可!所以对学过的知识还是要多加练习,夯实基础才是王道!偶然看到别人问关于返回值的问题,突然不知道该怎么来解答别人的疑惑了,因为我也是一个疑惑者,但是还好有很多高手举了很多生动地例子来帮助理解!以下是几个很好的比喻:


void  test1(int a){ System.out.println("只输出a:"+a);}  
int  test2(int a)(){System.out.println("求出a*a");     
                     return a*a; // 记住我的方法前面是int型,所以一定要有一个int类型的返回值  

}  
2.你可以把一个方法想想成一个黑盒子,不知道里面的具体业务实现方式,你想通过该方法得到什么类型的值就在前面写什么类型,在方法内部return什么类型,如果这个方法你觉得没有必要返回值,就写void了
3.方法相当于一个容器,参数是苹果,苹果传到方法里面,假如你想要苹果汁 就给他来个返回值是 苹果汁,想要苹果泥,就来个返回值是苹果泥,假如你就只是放在里面,以后不管苹果烂了还是怎么了,都不管它了,那就 给方法来个 void的空返回值。 有点俗!希望对lz有所帮助!

4.你需要通过这个方法获得什么样的数据类型,就把该方法定义成什么样的返回数据类型
比如你写一个两数求和的方法
public int add(int x,int y){
    return x+y;
}
那么这个方法就要定义成int型的,因为通过这个方法求得的数据是两个int型整数的和,当然也是int型咯,所以
返回数据类型就是int型的;
如果这个方法不需要返回一个值,就要把返回类型定义成void型,但不能不写(当然,只有一种情况可以不写,就是构造方法,现在你先不用考虑)
比如一个简单的输出方法,就无需返回一个值
public void show(){
   System.out.println("--------");
}
这时候就把返回类型写成空类型void

void test1() 和 int test1() 的区别就是有无返回值,
void 没有返回任何value,
int 返回的value是int类

在写代码时,
一个函数要么有返回值,
要么没有返回值,
没有返回值就用void来表示

你写的 int test1(int a) 会报错,
是因为当int a的value是-1或者任何小过-1的的时候,
你的 for loop 并不会执行,
也就不会进行任何返回的动作,
你的test1函数需要返回值,
可是代码并没有返回的动作
必要在最尾端进行一次返回,
比如 return 0;