为什么if的判断语句要有或?return1的非正常中止是什么意思?

if的判断语句不是到n=2就结束了吗?
return 0不是表示正常中止吗 为什么返回值就变成0了。。
return 1 表示非正常中止,却能返回正确的值
img

因为递归算法中,需要对n,n-1和n-2三个数进行运算,这个应该是算斐波那契数的
由于前三个数是1,1,2,所以n=1和2的结果都是1,可以直接return了
这里n应该是从1开始的

该程序原本要的就是1,如果想让程序非正常中止,可以return 任何一个数字
这里return 1,其实就是想要当n=1或者n=2的时候取得的值为1,
程序是通过递归求第n个斐波那契数是多少,n=3以后,后面的数等于前两个数之和,
假如n>3,则第n个斐波那契数,等于前两个之和


注意一下java编程书写规范,养成良好的编程习惯
类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。
如:public class MyFirstClass{}
你采用了中文,如过代码导入其他编程工具可能就会乱码,因为编码格式不同意,但是英文不受影响

If 语句两个都不满足,走else 然后递归,直到满足if语句,返回1,程序正常结束。如果报错的1程序结束,跟这个return 1 程序正常结束不一样

先不看你代码和问题。你的这个class名字中文以后一定的注意不要再出现

你说的return的值0或1表示正不正常和这个没关系,这个函数return的就是斐波那契数,前面判断1、2是验证递归的边界条件,防止无限向下调用

你怕不是学了假的C语言和java,https://www.bilibili.com/video/BV1ct411n7oG?from=search&seid=15082145018287481464,去打打基础吧