我被要求(学校)编写一个无效的函数并输出用户输入的三角形类型:
static void typeTri()
{
if (side1 == side2 && side2 == side3)
{
Console.WriteLine("The triangle is equilateral.");
}
else if ((side1 == side2 && side2 != side3) || (side1 != side2 && side2 == side3) || (side1 == side3 && side1 != side2))
{
Console.WriteLine("The triangle is isoceles.");
}
else
{
Console.WriteLine("The triangle is scalene.");
}
}
Run Code Online (Sandbox Code Playgroud)
对'else if'的测试似乎有点长.有任何想法吗?
多亏了逻辑,你可以简化你的第二个if:你不需要测试!=,因为如果它们是相同的,那么第一个if就已经满足了.
static void typeTri()
{
if (side1 == side2 && side2 == side3)
{
Console.WriteLine("The triangle is equilateral.");
}
else if ((side1 == side2) || (side2 == side3) || (side1 == side3))
{
Console.WriteLine("The triangle is isoceles.");
}
else if ((side1 >= side2 + side3) || (side2 >= side1 + side3) || (side3 >= side1 + side2) || (side1 <= 0) || (side2 <= 0) || (side3 <= 0))
{
Console.WriteLine("Not a Triangle");
}
else
{
Console.WriteLine("The triangle is scalene.");
}
}
Run Code Online (Sandbox Code Playgroud)
您还需要考虑这不是三角形的情况,但该要求可能超出了此特定问题的范围.