[英]Call to void method with parameters in Java
我在調用void方法
printDivisors(inputNum)
並收到此錯誤:
'void' type not allowed here
我在字符串中連接對方法的調用,編譯器一直抱怨...
這是對代碼中方法的調用:
if (determinePrime(inputNum)) {
JOptionPane.showMessageDialog(null, "Prime");
} else {
JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));
}
您可以在下面看到完整的程序:
import javax.swing.JOptionPane;
public class method_01 {
public static void main (String [] args) {
String input;
int inputNum;
// Determine Prime
do {
input = JOptionPane.showInputDialog("Enter a positive number please");
inputNum = Integer.parseInt(input);
} while (inputNum < 1 );
if (determinePrime(inputNum)) {
JOptionPane.showMessageDialog(null, "Prime");
} else {
JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));
}
}
// Determine Prime Method
public static boolean determinePrime(int num) {
for (int i = 2; i < num ; i++) {
if (num % i == 0)
return false;
}
return true;
}
// Print all the divisors of a number
public static void printDivisors(int number) {
for (int i = 1; i <= number; i++ ) {
if (number % i == 0)
System.out.print("\t" + i);
}
}
}
任何幫助將不勝感激。
您的聲明在此處無效:
public static void printDivisors(int number)
如果您在函數內部使用它,則應該返回一個字符串。 即寫入字符串而不是
System.out.print("\t" + i);
並使用+將字符串附加到代碼的末尾:
JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));}
問題在於
JOptionPane.showMessageDialog(null, "Not Prime" + printDivisors(inputNum));
我想你正在嘗試打印除數,但它返回null,理想情況下,當編譯器編譯時,它會搜索一個值,因為你在“Not Prime”之后有“+”符號,但是沒有得到任何東西。 因此它拋出一個例外。
要么更改printDivisors方法的返回類型,要么從參數中刪除該部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.