2017-12-09 33 views
0

私は新しいJavaで、自分で学習しようとしています。私はC++の背景から来ています。どんな助けでも大歓迎です。 FibonacciSeq()は私のメインで呼び出されていないので、なぜ私は不明です。私はフィボナッチ配列の先頭の整数(0)を受け取り、そこから各値をベクトルに書き込むという方法を作りました。ベクトルが9個の要素を持つとき、関数は終了するはずです。初心者としてJavaで関数が呼び出されないのはなぜですか?

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); 
     } 

    } 
} 
+1

Javaの学習を始めたばかりの方は、 'Vector'と' System.exit'を使用しないでください。 – vinS

+0

'System.exit(0)'はプログラムを終了します。 – Mat

答えて

2

、あなたの代わりにリターン

if (fibonacciVect.size() == 9) 
    { 
     return; 
    } 

によって(0)あなたはSystem.exitを置き換えることができます。また、あまりにも(0)他にSystem.exitを削除してください。 あなたのコードは今動作するはずです。

+0

それはそうしました。ありがとう! –

+0

@ Z。リードが動作すれば、私に知らせてください。 – rishon

+0

親切にupvoteし、助けてください、ありがとう! – rishon

1

9回目の再帰に達した時点でSystem.Exit()をコーディングしたためです。 これはyoutプログラムを終了させます。代わりにreturn文を使用できます。

関連する問題