我的变量没有初始化?

时间:2016-10-27 13:03:02

标签: java

我有这种方法。

错误说

  

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);
}

2 个答案:

答案 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++)