我试图写一个质数发生器。 calcall()方法应返回素数(2,3,5,7 ...)。不幸的是,我得到了一个错误,该方法不返回整数,据我所知。这是我的代码:
package primenumber;
public class primecalc {
public static int calcall(int a) { //actual generator
int konstante = a; //is this number a prime num?
int divisor = a-1; //divisor
int var1 = 0; //variable = 0
while(divisor>1) {
int quotient = konstante%divisor; //calc modulo
if(quotient == 0) { //if modulo==0 switch var1 to
var1++; //1 -> no primenumber
break; //stop calculating
} else { //else keep calculculating
divisor--; //until divisor <= 1
}
}
if(var1==0) { //if var1 still 0;
return konstante; //is a primnumber ->
} //return konstante
}
public static void main(String[] args) { //main function
int number = 3; //start with 3
while(True) { //(i'll add 2 manually)
System.out.println(calcall(number)); //print the prime number
number++; //increase number by one
}
}
}
错误是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type int
at primenumber/primenumber.primecalc.calcall(primecalc.java:5)
at primenumber/primenumber.primecalc.main(primecalc.java:28)
怎么了?
答案 0 :(得分:1)
您发布的代码上的灰线被编译器忽略。
使用/*
和*/
可以使两者之间的所有内容都被编译器视为注释。这就是为什么这些线变灰的原因。如果您想在代码的同一行中进行注释,建议您使用//
。
此外,通常的做法是仅使用多行注释来描述函数并将它们放在函数头上方。其他任何评论都应简短,简洁并描述功能。好的解释应该是好的变量名和写得很好的代码,并且在难以理解正在发生的事情时,应使用单行注释。
欢呼