2016-04-01 31 views
-3

私は、コードへの答えは(無限ループ)で、私のC#コードでこの部分を持っているC#RETVAL合併症

誰もが説明で私を助けてくださいことはできますか?

private void Form1_Load(object sender, EventArgs e) 
{ 
    Int32 X = 1; 
    Int32 RetVal = X; 

    while (X <= 5) 
    { 
     if (X == RetVal && X < 2) 
      RetVal = 4; 
     X = RetVal; 

     X += 1; 
    } 
    MessageBox.Show(X.ToString()); 
+2

より大きくなってきたことがないため、X = RetVal;に5より大きくなることはありませんあなたはデバッグしようとしましたか?コードからも、最初のループ 'X'が' 5'で、 'RetVal'が' 4'の後に見ることができます。これは、あなたの 'if'条件が' false'なので、このままになります。 'if'の後に' X'が 'RetVal'(' 4')に設定され、再び '5'がインクリメントされます。各反復の後、 'X'は' 5'であり、 'RetVal'は' 4'です。 –

+3

これは即座にデバッガを使用する理由の1つです – Steve

+0

あなたのインデントを修正してはいけないかもしれません。たぶんあなたは 'X = RetVal'が正の' if'ブランチの一部であると思ったでしょうか? –

答えて

1

Xifブロックの範囲にないとRetValは4

関連する問題