使用递归查找第 n 个斐波那契数时出错
Error with finding nth number of Fibonacci using recursion
我遇到了一个错误,说我的 int 变量 final 可能还没有被初始化,但是我想我在 if
语句中初始化了它。
import java.util.Scanner;
public class Fibo
{
static int fibNum(int num)
{
int finish;
if(num < 0)
{
finish = -1;
}
else if(num == 0 || num == 1)
{
finish = num;
}
else if(num > 1)
{
finish = fibNum(num-1) + fibNum(num-2);
}
return finish;
}//end fibNum
public static void main(String []args)
{
int num;
Scanner in = new Scanner(System.in);
num = in.nextInt();
fibNum(num);
System.out.println(" is the nth number in the fibbonaci sequence that you are looking for");
}//end main
}//end class
错误:
Fibo.java:20: error: variable finish might not have been initialized
return finish;
您必须初始化变量。
变化:
int finish;
到
int finish = 0;
虽然成员字段(变量)可以隐式初始化为默认值,但局部变量不能,因此您应该通过更改它来显式初始化它:
int finish;
对此:
int finish = 0;
您必须声明 Return 变量。因为if条件只能在调用方法的时候执行。
int finish = 0;
局部变量没有默认值。它们的初始值是未定义的,没有通过某种方式分配。在使用局部变量之前,必须对其进行初始化。
这就是你必须初始化局部变量的原因。
int finish = 0;
是的,必须在fibNum方法
中初始化int变量finish
我遇到了一个错误,说我的 int 变量 final 可能还没有被初始化,但是我想我在 if
语句中初始化了它。
import java.util.Scanner;
public class Fibo
{
static int fibNum(int num)
{
int finish;
if(num < 0)
{
finish = -1;
}
else if(num == 0 || num == 1)
{
finish = num;
}
else if(num > 1)
{
finish = fibNum(num-1) + fibNum(num-2);
}
return finish;
}//end fibNum
public static void main(String []args)
{
int num;
Scanner in = new Scanner(System.in);
num = in.nextInt();
fibNum(num);
System.out.println(" is the nth number in the fibbonaci sequence that you are looking for");
}//end main
}//end class
错误:
Fibo.java:20: error: variable finish might not have been initialized
return finish;
您必须初始化变量。
变化:
int finish;
到
int finish = 0;
虽然成员字段(变量)可以隐式初始化为默认值,但局部变量不能,因此您应该通过更改它来显式初始化它:
int finish;
对此:
int finish = 0;
您必须声明 Return 变量。因为if条件只能在调用方法的时候执行。
int finish = 0;
局部变量没有默认值。它们的初始值是未定义的,没有通过某种方式分配。在使用局部变量之前,必须对其进行初始化。
这就是你必须初始化局部变量的原因。
int finish = 0;
是的,必须在fibNum方法
中初始化int变量finish