Java 三角形求面积代码,执行死循环,判断输入是否为数,三个数是否可以组成三角形,求面积

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死循环   
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国服最强貂蝉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值