Java 求三角形面积,第二次课作业
在chengxu2这个包里
package chengxu2;
import java.util.Scanner;
//SJX 三角形代码,执行死循环,判断输入是否为数,三个数是否可以组成三角形,求面积
public class SJX
{
private static Scanner scanner;
public static void main(String[] args)
{
int n = 3; //三角形
int x;
double a,b,c,os,mj;
double[] array = new double[n]; //有三个数的数组
while(true) //一直循环计算不同三角形面积
{
System.out.println("请输入三角形三个边长:");
for(int i = 0;i < n;i++)
{
scanner = new Scanner(System.in);
String s = scanner.next(); //输入字符串s
if (s != null && s.matches("^[0.0-9.0]+$")) //判断是数还是其它
// [0-9]没办法识别小数,[0.0-9.0]可以识别小数和整数
{
//是数的时候
double num = Double.parseDouble(s); //将字符串转换为double型浮点数
array[i] = num;
x = n-1;
while (i == x) //这上边三行判断:当s输够三个串时进行下边的while括号
{
a = array[0]; //下边这三行,给三条边设成abc
b = array[1];
c = array[2];
if( (a+b>c) & (a+c>b) & (b+c>a) ) //判断是否能组成三角形
{
System.out.println("可以构成三角形");
os = (a+b+c)/2;
mj = Math.sqrt(os*(os-a)*(os-b)*(os-c)); //算面积
System.out.println("面积 " + mj);
}
else
{
System.out.println("不能构成三角形" + "\n");
}
i++ ;
/*这个i++是因为执行这个括号是在有三个数,即i=2的时候,
然后一个三角形计算完毕之后再给i一个其它任意值*/
} //while 括号结束
} //是数的if括号结束
else //不是数的时候
{
System.out.println("非法字符!" + "\n");
i = 3; //跳出for循环不输入边长了,继续执行while(true)的死循环
}
} //for循环结束,一个“三角形”完毕
} //while死循环
}
}