2013-07-06 108 views
-1

我用java製作了一個保理程序。我有一個項目在日食2包。一個人只有一個班,我遇到問題,另一個班裏什麼也沒有。 當我點擊運行,沒有任何反應,我不知道爲什麼。Java程序未運行

下面是Java代碼:

package com.frostbytedev.factor; 

import java.util.ArrayList; 
import java.util.Scanner; 

public class factor { 
    static ArrayList<Integer> notFactors = new ArrayList<Integer>(); 
    static ArrayList<Integer> factors = new ArrayList<Integer>(); 
    static int i = 0; 

    /** 
    * @param args 
    */ 
    public static void main(String[] args){ 
     // TODO Auto-generated method stub 
      Initialize(); 
    } 

    private static void Initialize() { 
     // TODO Auto-generated method stub 
     System.out.println("Enter a number to factor below:"); 
     Scanner in = new Scanner(System.in); 
     int number = in.nextInt(); 
     FactorNumber(number); 
     PrintList(Factors); 
    } 

    private static void PrintList(ArrayList<Integer> factorsToPrint) { 
     // TODO Auto-generated method stub 
     for(i=0;i<factorsToPrint.size()-1;i++){ 
      System.out.print(factorsToPrint.get(i)+", "); 
     } 
      System.out.print(factorsToPrint.size()); 

    } 

    private static void FactorNumber(int number) { 
     // TODO Auto-generated method stub 
     for(i=2;i<number/2;i++){ 
      if(number%i==0){ 
       FactorNumber(i); 
       FactorNumber(number/i); 
      } else { 
       notFactors.add(i); 
      } 
     } 
     if(notFactors.size()==number){ 
      factors.add(number); 
     } 
    }; 

} 
+1

邊注:請在[Java的命名約定(http://java.about.com/od/javasyntax/a/nameconventions.htm),他們會更容易那些看你的代碼瞭解它 – BackSlash

回答

0

嘗試通過右鍵單擊類文件在Project Explorer中運行類 - >運行方式 - > Java應用程序

+0

沒有,但沒有任何反應 –

+0

其實,當我將鼠標移到運行按鈕上時,它表示已經運行,但是當我單擊以打開控制檯視圖時,什麼也沒有發生 –

+0

您可以在控制檯視圖之間切換。在控制檯窗口中有一個按鈕「顯示選定的控制檯」。您可以通過點擊名爲「終止」的紅色按鈕來終止它們。終止所有正在運行的程序,然後嘗試通過右鍵單擊其文件再次運行因子類。 – bzzzrd

0

有以下代碼中的錯誤 1)由於我是靜態的,因此代碼中存在無限循環。 2)因素應該是一個避免重複的集合 3)如果(notFactors.size()== number/2 - 1)as loop從2開始 4)for(int i = 2; i < = number/2; i ++)它應該是< =

這並不打印1 &數字本身也是因素。如果你需要他們,你可以添加到設置。

package com.frostbytedev.factor; 

import java.util.ArrayList; 
import java.util.HashSet; 
import java.util.Scanner; 
import java.util.Set; 

public class Test { 
static ArrayList<Integer> notFactors = new ArrayList<Integer>(); 
static Set<Integer> factors = new HashSet<Integer>(); 

/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Initialize(); 
} 

private static void Initialize() { 
    // TODO Auto-generated method stub 
    System.out.println("Enter a number to factor below:"); 
    Scanner in = new Scanner(System.in); 
    int number = Integer.parseInt(in.nextLine()); 
    in.close(); 
    FactorNumber(number); 
    PrintList(factors); 
} 

static void PrintList(Set<Integer> factorsToPrint) { 
    // TODO Auto-generated method stub 
    for (int factor : factorsToPrint) { 
     System.out.print(factor + ", "); 
    } 
    System.out.println(factorsToPrint.size()); 

} 

private static void FactorNumber(int number) { 
    // TODO Auto-generated method stub 
    for (int i = 2; i <= number/2; i++) { 
     System.out.println(i); 
     if (number % i == 0) { 
      factors.add(i); 
      FactorNumber(i); 
      FactorNumber(number/i); 
     } else { 
      notFactors.add(i); 
     } 
    } 
    if (notFactors.size() == number/2 - 1) { 
     factors.add(number); 
    } 
}; 

}