边界条件的判断包括:

  • 文件读操作:第一个字符,最后一个字符,倒数第二个字符;
  • 大于号与大于等于号;

1. 数据结构

  • 关于整数:

    • 正数:包括边界值 1、0x7FFF FFFF
    • 负数:包括边界值 0x8000 0000、0xFFFF FFFF
    • 0
  • 关于序列(容器):

    • 序列为空;
    • 序列长度为 1;
    • 序列满;
  • 关于二叉树:

    • 树位空;
    • 只有根元素;
    • 只有一个左子树,或右子树;

2. 对于查找

  • 查找一定要判断有没有找到,没有找到其实也代表着一种特别的情况,尤其在递归调用时:

    int firstFree = -1;
    for (int i = 0; i < n; ++i){
    	if (!takens[i]){
    		if 
    	}
    }
    

3. 待处理的数组或字符串长度为 1 时

待处理的数组或字符串长度为 1 时,

for (size_t i = 0; i < n-1; ++i)				// n-1 == 0
// or
for (size_t i = 0; i < s.size()-1; ++i)		// s.size() - 1 == 0

是进不到循环里边的;

所以不论什么样的情况;

for (size_t i = 0; i < n; ++i)
// or
for (size_t i = 0; i < s.size(); ++i)

都会遍历全部元素。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐