我有这种方法。
错误说
primeList可能尚未初始化。
我无法理解这是怎么回事。我觉得这个变量不能从for循环中初始化。
我无法弄清楚如何初始化String
public void primesToANumber(long num) //finds all primes
{
String primeList ;
long pcount;
long limit = num;
JOptionPane.showMessageDialog(null,"Prime numbers between 1 and " + limit);
for(long i = 1; i < 100; i++)
{
boolean isPrime = true;
for(long j = 2; j < i ; j++)
{
if(i % j == 0)
{
isPrime = false;
break;
}
}
// print the number
if(isPrime)
{
primeList += i + ", ";
pcount++;
if(pcount % 12 ==0){
primeList += "\n";
}
}
}
JOptionPane.showMessageDialog(null, " " + primeList);
}
答案 0 :(得分:5)
您需要初始化您的变量,就像它说的那样......
String primeList = "";
使用空字符串将允许您的代码按预期附加到它,以获得所需的结果。
仅供参考,如果 由于某种原因想要使用null
,您可以通过直接指定它来“说服”编译器您知道自己在做什么:
String primeList = null;
这样可以正常编译,但是当你尝试追加到一个空字符串时会遇到运行时错误,因此在这个实例中执行此操作是没有意义的。
答案 1 :(得分:3)
尝试:
String primeList = "";
long pcount = 0;
我猜它应该是:
for (long i = 1; i < limit; i++)
insted of
for (long i = 1; i < 100; i++)