2016-10-27 10 views
-1

私はこの方法を持っています。私の変数は初期化されていませんか?

エラーが

primeListが初期化されていない可能性がありますと言います。

これがどうなるかはわかりません。私は、変数がforループから初期化されない方法はないと感じています。

私はその後、許可する空の文字列を使用して...

String primeList = ""; 

文字列

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); 
} 
あなたはそれが言うまさに同じように、あなたの変数を初期化する必要が
+10

'文字列primeList =のinsted;'でもすることができます – JonK

+1

コンパイルべきではありません」初期化されていない変数に対して '+ ='を使用しないでください。あなたは何に追加していますか? – khelwood

+0

変数が初期化されると思いますか? – Pshemo

答えて

5

を初期化する方法を見つけ出すことはできませんあなたが望むようにあなたのコードを追加して、あなたの望む結果を得ることができます。参考まで


、あなたはが何らかの理由でnullを使用したいなかった場合、あなたは「説得」することができ、あなたがそれを直接指定することによって、何をしているか知っているコンパイラ:

String primeList = null; 

これをコンパイルはうまくいきますが、null Stringに追加しようとするとランタイムエラーが発生するため、このインスタンスではこれを行うのは意味がありません。

+1

ありがとう、それは正しくコンパイルされて実行されました –

+0

@NikitaKovinskiyこの問題が解決した場合は、それを受け入れられた回答としてマークする必要があります。 – bradimus

3

試してみてください。

String primeList = ""; 
long pcount = 0; 

と私はそれがあるべき推測:

for (long i = 1; i < limit; i++) 

for (long i = 1; i < 100; i++) 
関連する問題