0

我有我认为很简单的一段代码。但是,“else”下面的代码并不完全是我的,但它说明了块的结构:

adHoc = true

if blah...
   adHoc = false
end

if blah...

   if adHoc
      my_logger.info("REACHED WHENEVER ADHOC IS TRUE")
   else 
      my_logger.info("NEVER REACHED")
   end

end

为什么永远不会到达 else 部分?

谢谢你。

4

1 回答 1

2

追溯可能性,只有4种情况:

  1. 等等……在这两个电话上都是正确的。
  2. 等等......在两个电话中都是假的
  3. 等等……第一个为真,第二个为假
  4. 等等……第一个是假的,第二个是真的。

情景 1。

废话真的adhoc设置为false。NEVER REACHED 被记录。

情景 2。

blahfalseadHoc设置为true。这里没有记录任何内容。

情景 3。

blahtrueadHoc设置为false。没有记录任何内容,因为第二个 blah 是错误的。

情景 4。

blahfalseadHoc设置为true
对 blah 的第二次调用为真,并且记录了“ADHOC 为真时达到”。


如您所见,“REACHED WHENEVER ADHOC IS TRUE”的唯一显示方式是在场景 4 中,其中 blah... 在调用之间从 false 变为 true。


blah 的一种可能性......对于场景 3 或 4 是:

ObjectSpace.count_objects[:T_NODE].odd?

于 2013-05-02T03:09:12.140 回答