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

时间:2015-09-06 00:30:25

标签: c# while-loop

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),

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

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

3 个答案:

答案 0 :(得分:4)

您正确地说:"screen 1"。真正的布尔条件表示下一个(和第一个)迭代将运行。

while (true)

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

答案 1 :(得分:2)

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

while (false)

答案 2 :(得分:1)

*

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