用Java分析三角形的类型

用Java分析三角形的类型,java,class,if-statement,logic,bluej,Java,Class,If Statement,Logic,Bluej,下面的代码用于根据用户在终端中输入的角度分析三角形的类型。然而,在第一个if语句中,尽管我将其设置为(a+b+c==d),但在终端中,如果我输入180,1,1,则不可能停止执行并打印三角形。,而是说三角形是等腰三角形。这肯定是我的错误。但我是个笨蛋,所以请纠正我的说法 /** * @date 20/4/2014 */ import java.io.*; public class Triangleanglederivation { public static void ma

下面的代码用于根据用户在终端中输入的角度分析三角形的类型。然而,在第一个if语句中,尽管我将其设置为
(a+b+c==d)
,但在终端中,如果我输入180,1,1,则不可能停止执行并打印
三角形。
,而是说三角形是等腰三角形。这肯定是我的错误。但我是个笨蛋,所以请纠正我的说法

/**
 * @date 20/4/2014
 */ 


import java.io.*;
public class Triangleanglederivation
{
       public static void main (String args[])throws IOException
    {
        InputStreamReader read = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(read);
        int a,b,c,d; 
        d=180;
        System.out.println("Enter the three sides of the triangle:");
        a=Integer.parseInt(in.readLine());
        b=Integer.parseInt(in.readLine());
        c=Integer.parseInt(in.readLine());        
        if(a+b+c==d)
            System.out.println("Triangle is possible.");    
        if((a==b)&&(b==c)&&(c==a))
            System.out.println("The triangle is equilateral.");
        else if((a==b)||(b==c)||(c==a))
            System.out.println("The triangle is isosceles.");
        else if((a!=b)&&(b!=c)&&(c!=a))
            System.out.println("The triangle is scalene.");
        else
            System.out.println("Triangle is not possible.");
    }
}
修理
无论三角形是否可行,都将应用三角形为等边、等腰和不等边的检查。您需要将可能性检查
(a+b+c==d)
添加到使用
&&
的每个选项中,或者嵌套if/else,使其仅在
if(a+b+c==d)
成功时发生。

可能的三角形应该由a+b>c和a+c>b和b+c>a验证
if((a==b)&&(b==c)&&(c==a)&&(a+b+c==d))
  System.out.println("The triangle is equilateral.");
else if(((a==b)||(b==c)||(c==a))&&(a+b+c==d))
  System.out.println("The triangle is isosceles.");
else if((a!=b)&&(b!=c)&&(c!=a)&&(a+b+c==d))
  System.out.println("The triangle is scalene.");
else
  System.out.println("Triangle is not possible.");