java - 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> 是三角形
解决方案
您可以改为返回 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;
}
推荐阅读
- .net - Dataproc 不会解压缩作为存档传递的文件
- reactjs - 如何使用 Jest 通过 Axios (async/await) 和 Redux Thunk 测试异步 Redux Action Creators?
- sql - 在 MATCHED 上插入雪花或在 NOT MATCHED 上更新
- html - CSS 悬停样式在悬停选择器附加到父容器之前不起作用
- .net - NuGet 使用 ApiKey 获取包版本
- user-interface - 如何编写 Reminders.app 的排序脚本?
- java - 策略模式和上下文类
- html - 项目符号不会从无序列表中消失?
- angular - 如何根据条件加载角度模块
- html - 响应式网格不适用于 grid-auto-flow: dense