public class Anser2 {
float[] arrays = new float[4];
//主函数入口,如果输入有误则抛出异常
public static void main(String[] args){
System.out.println("面积是:"+new Anser2().getTheArea());
}
private double inputStr() {
Scanner scan = new Scanner(System.in);
double result = 0;
System.out.println("请输入三个条边长,来建立一个三角形");
for(int i = 1; i < 4; ){
System.out.println("请输入第"+i+ "边长为:");
int intres = 0;
if (scan.hasNext()) {
String inputstr = (String) scan.next();
try {
intres = Integer.parseInt(inputstr);
if(intres <= 0)
System.out.println("您输入了一个小于或等与零的数,请重新输入一个数字");
else
arrays[i] = intres;
i++;
}catch (Exception e) {
System.out.println("您输入了一个错误字符,请重新输入一个数字");
e.printStackTrace();
}
}
}
return result;
}
public double getTheArea() {
inputStr();
double result = 0;
boolean error1 = (arrays[1] + arrays[2]) > arrays[3];
boolean error2 = (arrays[2] + arrays[3]) > arrays[1];
boolean error3 = (arrays[3] + arrays[1]) > arrays[2];
while(!(error1 && error2 && error3)) {
System.out.println("当前三条边不可能组成三角型请重新输入");
inputStr();
}
float sq = (arrays[1] + arrays[2] + arrays[3]) /2;
result = Math.sqrt(sq * (sq - arrays[1]) * (sq - arrays[2]) * (sq - arrays[3]));
return result;
}
}