在这个while循环中发生了什么

本文关键字:发生了 什么 循环 while | 更新日期: 2023-09-27 18:11:17

double number;
bool isParsed = false;
while(!isParsed)
{
    Console.WriteLine("Enter the value");
    isParsed = double.TryParse(Console.ReadLine(), out number);
    if(isParsed)
    {
        break;
    }
    Console.WriteLine("Invalid value");
}

我和一位朋友正在研究这个代码块。我发现这部分可以理解:

bool isParsed = false;
while(!isParsed)

我认为如果 isParsed = false,并且 while 循环将检查否定 (!isParsed( 以查看它是否应该运行,这不是逻辑吗:

while(!isParsed) => while(NOT(false)) => while (true)?

因此,while 循环永远不会运行。但它确实运行了。后来我明白了,检查正在发生:

while (!isParsed) => while((!isParsed) == true),

但他说,这并不完全是正在发生的事情。

有人可以解释一下这里发生了什么吗?

在这个while循环中发生了什么

你说得对:while (true) .该真正的布尔条件表示将运行下一次(和第一次(迭代。

!false == true

查看说明 while 循环行为的 MSDN 文档:https://msdn.microsoft.com/en-us/library/2aeyhxcd.aspx

在表达式中使用布尔值时,您正在检查值 true。 添加逻辑 NOT 运算符时,您现在正在寻找 false 的值。

while (false)
 bool isParsed = false;
while(!isParsed)

循环应至少运行一次;这是正确的行为,因为您的条件评估为真。