我正在 PICT 中测试三角问题。我正在测试三角形是等边三角形、等腰三角形还是不等边三角形。问题是我从来没有得到等边三角形。
Side1: 5,6,7,8,9,10
Side2: 5,6,7,8,9,10
Side3: 5,6,7,8,9,10
Type: equilateral, isosceles, scalene
IF (([Side1] = [Side2]) OR ([Side2] = [Side3]) OR ([Side3] = [Side1])) THEN [Type] = "isosceles" ELSE [Type] = "scalene";
IF (([Side1] = [Side2]) AND ([Side2] = [Side3]) AND ([Side3] = [Side1])) THEN [Type] = "equilateral";
但随机的是,当我将最后一行更改为
IF (([Side1] = [Side2]) AND ([Side2] = [Side3]) AND ([Side3] = [Side1])) THEN [Type] = "isosceles";
我随机得到会导致等边三角形的值。如何确保我的正确代码中也包含这些值?
最佳答案
试试这个:
Side1: 5,6,7,8,9,10
Side2: 5,6,7,8,9,10
Side3: 5,6,7,8,9,10
Type: equilateral, isosceles, scalene
IF (([Side1] = [Side2] AND [Side2] <> [Side3]) OR ([Side2] = [Side3] AND [Side3] <> [Side1]) OR ([Side3] = [Side1] AND [Side1] <> [Side2])) THEN [Type] = "isosceles";
IF (([Side1] = [Side2]) AND ([Side2] = [Side3])) THEN [Type] = "equilateral";
IF ([Side1] <> [Side2] AND [Side2] <> [Side3] and [Side3] <> [Side1]) THEN [Type] = "scalene";
原因是你的逻辑在案例之间有重叠,你应该明确你的条件,比如每个案例只有一个结果。上面的例子有效;我验证了它。祝你好运!
关于使用 PICT 进行测试,但测试用例不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26301157/