2014-04-26 28 views
1

嗯,我試圖同時使用兩個「For」命令。同時使用兩個「For」

的代碼:

public static void SendToMap(string map, string packet) 
{ 
    for (int i = 0; i < Clients.Count; i++) 
     for (int i2 = 0; i2 < Globals.Player_HighIndex; i2++) 
     { 
      Console.Write(i); 
      Console.Write(i2); 
      if (PStruct.character[i2, PStruct.player[i2].SelectedChar].Map == map) 
      { 
       if (Listen.Clients[i].Index == i2) 
       { 
        Clients[Listen.Clients[i].ListIndex].TCPClient.Client.SendBufferSize = Encoding.UTF8.GetByteCount(packet); 
        Clients[Listen.Clients[i].ListIndex].TCPClient.Client.Send(Encoding.UTF8.GetBytes(packet)); 
       } 
      } 
     } 
} 

的Globals.Player_HighIndex值是1,並且Clients.Count爲0,即,欲要執行的命令如下:

(0,0) (0,1) 

什麼完成:

(0,0) 

任何人有提示或解決?

+0

Globals.Player_HighIndex的價值是什麼?是否有任何機會爲零? –

+2

使用一個調試器,並通過你的代碼... –

+1

請注意,「Clients.Count」爲0「似乎與你得到的輸出矛盾 - 如果情況是這樣的話,執行甚至不應該進入第一個循環。 –

回答

1

你過早地結束了你的循環。你需要< =。

for (int i2 = 0; i2 <= Globals.Player_HighIndex; i2++) 
相關問題