• 締切済み

普通のfor文が無限ループになってしまうことはあるのでしょうか?

C#のプログラミングで for (int i = n; i < n + 2; i++) { .,......... } のような普通のfor文が無限ループになってしまっていて困っています。 何か書き方が悪いのか、それともVISUAL STUDIOやパソコンの調子が悪いのでしょうか?? 教えてください。 ちなみにnは-9E17くらいのすごく小さな数です。

みんなの回答

回答No.6

forループのなかで、iの値を表示させると何か分かると思います。 ちなみに、故意に無限ループを作るのにfor(;;){処理}ってやったりします。。

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.5

-9E17 は 負の すごく大きな数で int の最大値をはるかに超えてるから。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

n に実際に値をセットしているところを含めて、 断片じゃなくってコード全体を見せてみようかな~、 なんて気持ちはありますか?

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.3

> nは-9E17 -9E17 = -900,000,000,000,000,000 とは、負の数で絶対値は非常に大きい数ですね。そういう値を入れているということは、nは浮動小数点型でしょうか。 int で表現できる数値の範囲は32bit=-2,147,483,648~2,147,483,647 ですから、-9E17という数はintでは表現できません。 そういう範囲外の値をiに代入して比較しているわけですから、 無限ループになってもおかしくないかと思います。

  • boro-pc
  • ベストアンサー率30% (64/208)
回答No.2

情報が少なくてハッキリ言えませんが >n=-9E17 って期待値ではないですよね まずプログラムバグだと思います ですので >VISUAL STUDIOやパソコンの調子が悪い ではないと思います

回答No.1

まずは確認ですがループの中でnやiをいじっていませんか?

関連するQ&A