黑马程序员技术交流社区
标题:
为什么直接写函数没有返回值?
[打印本页]
作者:
郭孟涛
时间:
2013-2-12 23:52
标题:
为什么直接写函数没有返回值?
class Test
{
public static void main(String[] args)
{
int x = Search();
System.out.println(x+" ----");
Search();
}
public static int Search()
{
int i = 9;
System.out.println(112);
return i;
}
}
复制代码
输出结果:112
9 ----
112
为什么直接写函数
Search();的时候怎么也输出结果“112”,没有返回值?而赋值给x的时候 还输出的返回值“9”。
作者:
石琪
时间:
2013-2-13 00:05
直接写函数当然有返回值,只是楼主没有创建变量储存,所以只是输出了“122”
第五行代码,赋值给x,就把返回值“9”赋值给了变量x并执行一次输出"122"
作者:
Gaara
时间:
2013-2-13 00:30
因为从主函数开始读
第一句int x = Search(); 虚拟机会去找Search方法所以读到System.out.println(112);就打印了112 。
并把返回值9付给了x。
所以这条语句:System.out.println(x+" ----"); 就打印了9 ----。
最后又读Search方法。但没有进行存储,只是调用了该方法。所以就只用到该方法的功能。
当然就打印该语句:System.out.println(112); 结果就是112.
作者:
王昕
时间:
2013-2-13 12:21
直接写函数就是运行了一遍那个函数,函数里有输出112,所以输出112。你调用了函数,可是没有取得它的返回值, Java又不强制检查你有没有用返回值。
作者:
朱玉玺
时间:
2013-2-13 15:05
search()是有值的,只不过你没用而已。你System.out.println(search());看有结果没。
作者:
史政法
时间:
2013-2-13 16:47
最后一句当然有返回值,只是你没使用它,因为你那句话运行到了,不管返不返值,只要运行到,就把这句话执行到,而返回值你没使用。
作者:
huangxiaoyue
时间:
2013-2-14 00:07
int x = search(); 执行函数search(),输出一个123,i 的值返回后把值放到变量x中,接着输出x的值。
直接调用search函数,search(); 这时函数search函数内执行一个操作来输出123,i 的值因为没有输出动作因此不显示。
作者:
dzr19850306
时间:
2013-2-14 09:26
直接写函数,函数也是有返回值的。但是你没有保存它。int x=Serach(),相当于你将一碗水(Search() )倒到例外一个锅(x)里。如果你直写一个Search();这个返回值就被倒到地上一样,你根本找不到。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2