为啥要写成n==0或n==1;还有return n*f(n-1)是什么意思

public int f(int n){
if(n=0){
return 1;
}
else if(n=1){
System.out.println("0!=1");
System.out.println("1!=1");
return 1;
}
else{
System.out.println(n+"!="+n+"*"+(n-1)+"!");
return n*f(n-1);
}
}

n=0和n=1是赋值,分别将0和1赋值给n。而n==0是判断语句,判断n是不是等于0
return n*f(n-1) 是返回一个值,这个值是由n和f(n-1)两个数相乘得出来的,f就是这个方法,将n-1传入追问

在myeclipse中写成n=1,n=0;它为啥说类型不对(int与boolean)啊,0和1是boolean型是什么意思?谢了

追答

不是0和1是boolean,boolean只有两个,true或false
if是条件判断,括号中需要传入的是boolean类型的值,如true或false,如果括号里写的是n==0,那就是判断n的值是不是0,如果是0则返回true,判断条件成立,进入后面大括号里的内容,如果不成立则返回false,跳过后面的大括号继续向下执行。
而你写的是if(n=0),括号里面是一个int类型的变量n,n的值为0,所以括号里面的是int而不是需要的boolean类型,所以类型不对

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网