2016-07-03 5 views
1
class Program 
{ 
    static void Main() 
    { 
     int i ; 
     for (i=0; i < 10;i++) 
     { 
     // p: Console.WriteLine("hello"); 
     p: if(i%2!=0) 
      { 
       if(i==5) 
       { 
        goto p; 
       } 
      } 
      Console.WriteLine(i); 
     } 
     Console.ReadKey(); 
    } 
} 

//output : 0 1 2 3 4なぜ私のプログラムコードはc#でgoto文を無限に実行していませんか?

+0

'i%2'は剰余を計算します。条件「i%2」を「0」にするためには、数iは偶数でなければならない。だから私は '0、2、4、6、8 'でなければならず、どれも' 5'ではありません。 – user3078414

答えて

0

gotoが実行されています。残念ながら、変数が変更されていないので、前と同じパスが実行されます。gotoに再度到達します。これは無限ループです。

特に、iはジャンプの前後で同じ値を持ちます。多分これはあなたの誤解です。

デバッガを使用する方法を学ぶ必要があります。これは、プログラムをシングルステップ実行しているときに表示されます。

関連する問題