使用Java分析三角形的类型

时间:2014-05-05 10:42:12

标签: java class if-statement logic bluej

下面的代码应该根据用户在终端中输入的角度来分析三角形的类型。但是,在第一个if语句中,虽然我将其设置为(a+b+c==d) - 仍然在终端中,如果我输入180,1,1 - 而不是停止执行并打印Triangle is not possible.,而是说三角形是等腰。这对我来说肯定是个错误。但我是一个菜鸟,所以请纠正我的陈述。

/**
 * @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.");
    }
}

修复

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.");

1 个答案:

答案 0 :(得分:0)

无论三角形是否可能,您都会应用检查等边,等腰和斜角三角形的三角形。您需要为使用(a+b+c==d)的每个人添加可能性检查&&,或者嵌套if / else,以便它们仅在if (a+b+c==d)成功时发生。