[英]Why isn't my function being called in Java?
我是Java的新手,正嘗試自己學習。 我來自C ++的背景。 任何幫助將非常感激。 FibonacciSeq()沒有在我的主體中被調用,我不確定為什么。 我制定了一種方法來接受斐波那契序列中的起始整數(0),然后從那里遞歸地用每個值填充向量。 當向量有9個元素時,函數應結束。
public class Fibonacci
{
static Scanner input = new Scanner(System.in);
static Vector<Integer> fibonacciVect = new Vector<Integer>(0);
static int second;
static int newFirst;
static int fibIn = 0;
public static void main(String[] args)
{
System.out.print("Here comes the Fibonacci, watch out!");
fibonacciSeq(fibIn);
System.out.print("Values in Fibonacci Vector:");
for (int i = 0; i < fibonacciVect.size(); i++)
{
System.out.print(fibonacciVect.elementAt(i));
}
System.exit(0);
}
public static void fibonacciSeq(int first)
{
if (first == 0)
{
second = 1;
fibonacciVect.addElement(0);
fibonacciVect.addElement(1);
newFirst = first + second;
fibonacciSeq(newFirst);
}
if (fibonacciVect.size() == 9)
{
System.exit(0);
}
else
{
newFirst = first + second;
fibonacciVect.addElement(newFirst);
second = first;
fibonacciSeq(newFirst);
}
}
}
作為初學者,您可以用return代替System.exit(0)
if (fibonacciVect.size() == 9)
{
return;
}
另外,也請刪除另一個System.exit(0)。 您的代碼現在應該可以工作了。
因為您在到達第9個遞歸點時對System.Exit()進行了編碼。 這會使您的程序完成。 您可以改用return語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.