这个Java程序怎样运行?可以解释一下吗?

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:14:52
public class Cm{
public static void main(String[ ] args){
System.out.println( test(15,26,4) );
}
static int test(int x, int y, int z) {
return test( x, test(y,z) );
}
static int test(int x,int y){
if(x>y) return x;
else return y;
}}
中间的return是什么意思,还有怎么有个( x, test(y,z) ),比较大小后怎么会输出y的值呢?
可以详细地解说一下吗?谢谢各位高手拉!

public class Cm{
public static void main(String[ ] args){
System.out.println( test(15,26,4) );
}
static int test(int x, int y, int z) {
return test( x, test(y,z) );/****这种属于嵌套,在函数中调用函数***/
}
static int test(int x,int y){
if(x>y) return x;
else return y;
}
}

/*在mian方法中:执行test(15,26,4),将这些个数传给对应的test,带有三个参数的函数,所以先传给static int test(int x, int y, int z)
* 这个test函数。x对应15,当对应test(y,z)时,又转向带有两个参数的函数。
* 于是开始执行static int test(int x,int y)这个函数,y对应x为26.z对应y为4.执行结果为因为26>4,所以return返回x为26;
*又回到带有三个参数static int test(int x, int y, int z)这个函数,再调用带有2个参数的static int test(int x,int y)这个函数;
*刚说x对应15,return返回x为26;因为26>15,所以返回return这次返回y为26.至此mian方法里就输出:26.
*
*这种现象有时候很绕人的,但是你一点一点的琢磨就会很简单了,呵呵,我说的语言表达不是很好,但还是希望对你有所帮助。你去看看
*C语言基础的书,关于函数那一章,讲的很清楚。多看看就明白了.
*
*/

static int test(int x,int y){
因为你定义的方法中是需要返回值的,所以用return返回一个值。
test( x, test(y,z) )相当于:
int