在Java中使用参数调用void方法
我调用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);
}
}
}
任何帮助都将不胜感激
# 1 楼答案
您的声明在此无效:
如果在函数中使用它,则应该返回一个字符串。 i、 e.写入字符串而不是
并使用+将字符串附加到代码末尾:
# 2 楼答案
问题在于
我假设您试图打印除数,但它返回null,因此理想情况下,当编译器编译时,它会搜索一个值,因为“Not Prime”后面有“+”符号,但不会得到任何结果。因此,它抛出了一个例外
更改printDivisors方法的返回类型或从参数中删除该部分