如果数字满足两个以上条件,该如何返回两种类型?
到目前为止,我得到的输出是:
输入三个整数: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;
}