以下两个c语句是否相同?

时间:2016-05-26 05:46:24

标签: c

  1. if ( i>=8 || i<0)
  2. if(!((i>=0) && (i<8)))
  3. 以上陈述是否相同?如果不是,则i的值不同。

    提前致谢。

    编辑1:意图是捕捉i在0-7范围之外的任何值,是否都会执行相同的任务?

2 个答案:

答案 0 :(得分:4)

他们是一样的。根据德摩根定律,对否定的否定就是否定的结合。

因此(不是A)或(非B)与非(A和B)相同。如果你说A是i&lt; 8,B是i> = 0,你有答案。

答案 1 :(得分:0)

在这种情况下,它们是相同的,但第一个声明可能只评估第一部分,所以将来确保你知道你正在做什么做这样的交换。