如果数字满足两个以上条件,该如何返回两种类型?

到目前为止,我得到的输出是:
输入三个整数:8 8 8
是等腰三角形

private Types getTypes ()
{
    int a = getA();
    int b = getB();
    int c = getC();

    if ((a+b) > c || (a+c) > b || (b+c) > a )
    {
        if (a==b || a==c || b==c)
        {
            return Types.Isosceles;
        }
        if (a == b && b == c && c==a)
        {
            return Types.Equilateral;
        }

        else
        {
            return Types.Scalene;
        }
    }
    else
        return Types.NoShape;
}


理想的输出是
     输入三个整数:8 8 8
     是等边三角形
     是等腰三角形
     是一个三角形

最佳答案

相反,您可以返回Set<Types>,因为一个集合可以容纳多个项目。在方法开始时,创建一个集合以添加所有类型。然后,您可以在该方法的其余部分中添加它。

private Set<Types> getTypes() {
    Set<Types> set = EnumSet.noneOf(Types.class);
    int a = getA();
    int b = getB();
    int c = getC();

    if ((a+b) > c || (a+c) > b || (b+c) > a) {
        if (a==b || a==c || b==c) {
            set.add(Types.Isosceles);
        }
        if (a == b && b == c && c==a) {
            set.add(Types.Equilateral);
        } else {
            set.add(Types.Scalene);
        }
    }
    if (set.isEmpty()) {
        set.add(Types.NoShape);
    }
    return set;
}

10-05 23:56
查看更多