这里介绍的方法,是我本人刚接触JAVA,学习到类和对象时编写,有考虑不周的地方还望谅解,如果有更好的方法欢迎留言,谢谢。我的代码如下:
import java.util.Arrays;
import java.util.Scanner;
public class IsTriangle {
// 判断能否构成三角形
public boolean isTriangle(int a, int b, int c) {
boolean flag = false;
if (a + b > c && b + c > a && a + c > b) {
System.out.println(a + " " + b + " " + c + "可以构成三角形!");
flag = true;
} else {
System.out.println("不能构成三角形!!!");
}
return flag;
}
// 判断什么三角形
public String shape(int a, int b, int c) {
// 调用判断是否是三角形的方法
boolean flag = isTriangle(a, b, c);
String shape = null;
// 创建存放三个边的数组bian
int[] bian = new int[3];
bian[0] = a;
bian[1] = b;
bian[2] = c;
// 如果构成三角形为true,对数组进行升序排序,判断最大边与其余两边的关系
if (flag) {
Arrays.sort(bian);
if (bian[2] * bian[2] > (bian[0] * bian[0] + bian[1] * bian[1])) {
shape = bian[0] + ", " + bian[1] + ", " + bian[2]
+ ",这是一个钝角三角形";
} else if (bian[2] * bian[2] == (bian[0] * bian[0] + bian[1]
* bian[1])) {
shape = bian[0] + ", " + bian[1] + ", " + bian[2]
+ ",这是一个直角三角形";
} else if (bian[0] == bian[1] && bian[1] == bian[2]) {
shape = bian[0] + ", " + bian[1] + ", " + bian[2]
+ ",这是一个等边三角形";
} else if (bian[2] * bian[2] < (bian[0] * bian[0] + bian[1]
* bian[1])) {
shape = bian[0] + ", " + bian[1] + ", " + bian[2]
+ ",这是一个锐角三角形";
}
}
return shape;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String answer = null;
// 三角形的三个边
int a;
int b;
int c;
do {
System.out.print("请输入第一条边(正整数):");
a = input.nextInt();
System.out.print("请输入第二条边(正整数):");
b = input.nextInt();
System.out.print("请输入第三条边(正整数):");
c = input.nextInt();
// 创建类的一个对象x
IsTriangle x = new IsTriangle();
String shape = x.shape(a, b, c);
System.out.println(shape + ",是否继续?y/n");
answer = input.next();
} while ("y".equals(answer.toLowerCase()));
System.out.println("结束查询!");
}
}