2016-07-17 6 views
-3

私は非常に大きな数を使って作業しようとしています。私は、の長いループをforループで使用するのに問題がありました。forループで長い変数型を使用する

それでは、私は6000億倍を通じてその繰り返し処理ループのためのシンプルな作ってみました600000000000

を使用したいとしましょう。これは私の試みです(java):

long n = 2342345234L; 
    for (int i = 1; i==n; i++) 
    { 
     System.out.println(i); 
    } 

私はコードを実行し、何も出力しません。私はので、私は、私は私のコードおよび/または相違の簡単な説明で変更する必要があるものの説明をいただければ幸いです長い変数の型との経験がないint i = 1long i = 1にとlong i = 1L

を変更しようとしましたint型長い

の間、私は、重複記事をチェックしているが、それらはすべて、より自分の番号ではなく、ループは即座に終了しているようだ私の問題の後にLを入れていない人を中心としているようです。

すべての返信いただきありがとうございます。私の問題に対する解決策は、longとは関係がありませんでした。これはlongまたはintとは何の関係もありません単にforループ

+0

while'ロングタイプで、 ''使用 – Sanjeev

+4

私== N 'は、常にあなたのケースでは 'false'をあるvarsは。再試行する。 – Idos

+0

問題が発生しましたか?あなたの質問は何ですか? intとlongの違いについて尋ねているのであれば、それはintよりも大きい数を保持することができます(したがって、使用するには少し高価です)。 – Gendarme

答えて

3

の私の間違った実装は、それが原因12342345234に等しくないのでi == nながらループは最初の反復で偽であるという事実にあります。

することができます代わりに、ループi < n中:

long n = 2342345234L; 
for (long i = 1; i < n; i++) 
{ 
    System.out.println(i); 
} 
+1

あなたは 'i'のタイプを変更したことに言及する必要があります。 – Tom

+0

ああありがとう。私はちょうど私が、コードが実行されたことを考えていたので、愚かなJavaを使用し始めました** **条件は、むしろ** –

-1

i < nに変更i==nループの仕組みを最初に知る必要があります。このような大規模な番号の

long n = 2342345234L; 
for (long i = 1; i < n; i++) { 
    System.out.println(i); 
} 
+2

ながら**よりも満たされるまで(あなたは** int型を監督**私は、それゆえ、誰かがdownvoted。) –

+0

指摘してくれてありがとう。 – Pranalee

関連する問題