簡體   English   中英

為什么我的函數沒有用Java調用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM