我不明白在 C# 中使用“while(true)”和“for(;;)”循环!

Xri*_*ris 4 c# for-loop while-loop

While(true)循环的示例代码:

    public void HandleConnection()
    {
        TcpClient tcpClient = tcpListener.AcceptTcpClient();
        NetworkStream networkStream = tcpClient.GetStream();
        while (true)   /**Don't understand this while(true) loop**/
        {
            buffer = new byte[1024];
            n = networkStream.Read(buffer, 0, buffer.Length);
            if (n == 0)
            {
                break;
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

for(; ;)循环的示例代码:

     public void readLine(NetworkStream inputStream)
     {
        using (StreamReader reader = new StreamReader(inputStream))
        {

            char[] buffer = new char[128];
            int n;

            for (; ; ) /**Don't understand this for(; ;) loop**/
            {
                n = reader.Read();
                if (n == -1 || n == '\n')
                {
                    break;
                }
        }
      }
Run Code Online (Sandbox Code Playgroud)

任何人都可以通过参考提供的示例代码清楚地理解上述循环语句吗?感谢您的帮助!

Pie*_*ter 5

第一个应该很容易:

while(true)
Run Code Online (Sandbox Code Playgroud)

这只是意味着您应该无限循环(除非break循环内部有一些)。如果您只是将其作为普通的英文文本行阅读,则其含义应该很清楚。

另一个更难解释:

for( ; ; )
Run Code Online (Sandbox Code Playgroud)

通常里面的部分( ... )包含三个语句:(1)一个起点,(2)一个退出条件,(3)一个增量。没有这三个语句,它只会无限循环。主要是因为没有退出条件。