【问题标题】:c# bool function working principlec# bool函数工作原理
【发布时间】:2013-12-21 11:38:31
【问题描述】:

谁能解释一下这段代码的工作原理?我向我的一位老师寻求帮助,他编写了代码,我不知道他对此有何看法。

所以我有一个 bool 函数,它返回 false 或 true 值(显然)。但问题是,有这行代码:

while (!DrikstPievienot(skaitlis, i, j, numbers));

这是什么意思?代码将起作用,而 bool 函数将继续返回 false 值?

【问题讨论】:

  • 只是为了确保之前的某处没有“do”行?

标签: c# arrays function boolean


【解决方案1】:

代码将起作用,而 bool 函数将继续返回 false 价值

是的,while 循环将继续,而 DrikstPievienot 方法继续返回 false

如果该方法返回一次true,那么它将跳出while循环。

【讨论】:

    【解决方案2】:

    好吧,这不是一个很好的例子

    while 语句后跟一个分号。底层函数的输入参数似乎是恒定的(除非传入了一些引用类型),因此,如果函数内部没有发生任何可能改变返回值的事情,则此循环将永远执行或永远不会执行

    所以扩展你上面的代码

    while (false == DrikstPievienot(skaitlis, i, j, numbers));
    

    意味着如果被调用的方法返回 false,while 语句的计算结果为

    while(false == false);
    

    这会持续很久(或直到停电关闭一切)

    【讨论】:

    • 当然是这样,但是,就目前而言,我对此无话可说。而且我仍然对那个分号很不满意。但是,我将您的观察添加到上面的答案中。
    【解决方案3】:

    “代码会起作用,而 bool 函数会一直返回 false 值?”

    是的,正是因为当它返回 false 时,while 循环
    条件将继续评估为真。所以你做对了。

    有关更多详细信息,您可能需要查看此链接。

    http://msdn.microsoft.com/en-us/library/2aeyhxcd.aspx

    【讨论】:

      【解决方案4】:

      为了更明白,如果你写“while”并按两次“Tab”按钮,这个代码sn-p就会出现:

      while (true)
      {
      
      }
      

      这意味着只要它检查的条件为真,while循环就会运行,你的老师添加了“!”仅当返回值为 false 时才使 while 循环起作用。

      换个角度看,说你有

      bool isTrue = true;
      while (isTrue);
      

      让我们稍微修改一下代码:

      bool isTrue = DrikstPievienot(skaitlis, i, j, numbers);
      while (isTrue) 
      

      现在你知道在 while 循环中用你的函数名替换“isTrue”(就像你的老师写的那样)将得到与在 while 循环中使用“isTrue”变量相同的结果。 (再次,您的老师添加了“!”以使 while 循环仅在返回值为 false 时才起作用。)

      【讨论】:

        【解决方案5】:

        while 循环将一直持续到满足某个条件为止。

        while 循环:

        while (!DrikstPievienot(skaitlis, i, j, numbers));
        

        正在调用一个函数DrikstPievienot,它返回一个布尔值。但该函数以“!”为前缀不是。这意味着循环应该继续,直到它返回 true。

        【讨论】:

          【解决方案6】:

          为了更好地理解,你可以这样翻译,while not true do s.t.,我想如果你这样看,它会更有意义。

          【讨论】:

            猜你喜欢
            • 2017-11-09
            • 2021-06-27
            • 2012-02-28
            • 2015-10-24
            • 2016-01-27
            • 1970-01-01
            • 2020-12-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多