2016-10-04 85 views
0

我想在Divisors類中打印位於類computeDivisor中的方法「compute」。我如何得到誰是除數?如何在不同的類中打印方法的結果?

public static void main(String[] args) { 
    Scanner s = new Scanner(System.in); 
    computeDivisors cD = new computeDivisors(); 
    System.out.println("Enter an integer: "); 
    int num = s.nextInt(); 
    System.out.println("The divisors of " + num + " are: "); 
    cD.compute(); //Why doesn't it print? 
    s.close(); 
} 

-

public void compute(){ 
    for (i = 2; i <= num/2; i++) { 
    if (num % i == 0) { 
     System.out.print(i + " , "); 
     } 
    } 
} 

}

+0

你如何將你的變量'num'傳遞給'public void compute()'?它應該是一個參數嗎? – Andreas

回答

1

您需要通過該方法需要作爲參數數據:使用該參數

public void compute(int num){ 
    for (i = 2; i <= num/2; i++) { 
    if (num % i == 0) { 
     System.out.print(i + " , "); 
     } 
    } 

,然後調用方法:

cD.compute(num); 

如果我可以添加一個設計注意:最好是返回計算值,而不是從計算函數中打印出來。函數應該做一件事情,在這種情況下,一件事是計算一個值。考慮一下如果將來你想要計算這個值並在其他計算中使用它,或者將它顯示在STDOUT以外的地方 - 你必須重寫函數。如果您返回該值,然後在返回時執行所需的任何操作,則可使您的程序更加靈活。

0

由於num整數是所述方法的範圍。您必須使用num變量作爲參數。 換句話說,該方法中不存在num變量。

0

它看起來像num變量甚至沒有傳遞給compute()方法。另外 - 我們看不到Divisors,既不是computeDivisor類(應該命名爲ComputeDivisor)。

相關問題