我有这个方法.
错误说
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);
}
Run Code Online (Sandbox Code Playgroud)
你需要初始化你的变量,就像它说的那样......
String primeList = "";
Run Code Online (Sandbox Code Playgroud)
然后,使用空字符串将允许您的代码按预期附加到它,以获得所需的结果.
仅供参考,如果您确实想要null出于某种原因使用,您可以通过直接指定它来"说服"编译器您知道自己在做什么:
String primeList = null;
Run Code Online (Sandbox Code Playgroud)
这将编译正常,但是当您尝试追加到null String时会遇到运行时错误,因此在此实例中执行此操作没有意义.