首页 > 解决方案 > if else循环满足多个条件

问题描述

如果数字满足超过 2 个条件,如何返回 2 种类型?

到目前为止我得到的输出是: 输入三个整数: 8 8 8 <8, 8, 8> is an Isosceles triangle

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 <8, 8, 8> 是等边三角形 <8, 8, 8> 是等腰三角形 <8, 8, 8> 是三角形

标签: javaloops

解决方案


您可以改为返回 a 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;
}

推荐阅读