プロが教える店舗&オフィスのセキュリティ対策術

C#のプログラミングで

for (int i = n; i < n + 2; i++)
{
.,.........
}

のような普通のfor文が無限ループになってしまっていて困っています。
何か書き方が悪いのか、それともVISUAL STUDIOやパソコンの調子が悪いのでしょうか??
教えてください。

ちなみにnは-9E17くらいのすごく小さな数です。

A 回答 (6件)

forループのなかで、iの値を表示させると何か分かると思います。



ちなみに、故意に無限ループを作るのにfor(;;){処理}ってやったりします。。
    • good
    • 0

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

    • good
    • 0

n に実際に値をセットしているところを含めて、


断片じゃなくってコード全体を見せてみようかな~、
なんて気持ちはありますか?
    • good
    • 0

> nは-9E17



-9E17 = -900,000,000,000,000,000 とは、負の数で絶対値は非常に大きい数ですね。そういう値を入れているということは、nは浮動小数点型でしょうか。

int で表現できる数値の範囲は32bit=-2,147,483,648~2,147,483,647 ですから、-9E17という数はintでは表現できません。

そういう範囲外の値をiに代入して比較しているわけですから、
無限ループになってもおかしくないかと思います。
    • good
    • 0

情報が少なくてハッキリ言えませんが


>n=-9E17
って期待値ではないですよね
まずプログラムバグだと思います
ですので
>VISUAL STUDIOやパソコンの調子が悪い
ではないと思います
    • good
    • 0

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!