This question already has an answer here:
What are the differences pre condition ,post condition and invariant in computer terminology [closed]
                                
                                    (1个答案)
                                
                        
                                6年前关闭。
            
                    
例如,我有以下代码:

public class Calc(){
  final int PI = 3.14; //is this an invariant?

  private int calc(int a, int b){
      return a + b;
      //would the parameters be pre-conditions and the return value be a post-condition?
  }
}


我只是对这些术语的确切含义感到困惑?上面的代码就是我认为的样子,但是有人能指出我的理论正确方向吗?

最佳答案

您的代码与其他零碎的代码有约定。前提条件本质上是最初必须满足的条件,以便您的代码保证它可以执行应做的事情。

例如,二进制搜索的先决条件是必须对要搜索的内容进行排序。

另一方面,如果满足先决条件,则后置条件是代码所保证的。例如,在二进制搜索的情况下,我们可以保证找到所搜索内容的位置,或者在找不到任何东西的情况下返回-1。

前提条件几乎就像是参数之上的另一件事。它们通常不会直接影响代码,但是在其他人使用您的代码时很有用,因此他们可以正确使用它。

10-06 13:51