日期:2014-05-20  浏览次数:20784 次

在自定义类里面使用boolean判断
有这样一个题:

根据三角形的三条边长,判断其是直角、钝角,还是锐角三角形。程序的功能要求如下:

1.先输入三角形的三条边长;

2.判断能够构成三角形,构成三角形的条件是“任意两边之和大于第三边”,如果不能构成三角形则提示“不是三角形”,并且,提示用户继续输入;

3.如果能构成三角形,判断三角形是何种三角形。如果三角形的任意一条边的平方(例如:a*a)等于其他两条边的和,则为直角三角形;如果任意一条边的平方大于其他两条边平方的和,则为钝角三角形,否则,为锐角三角形.


[size=24px][b]我用set,get的方法写出了这个题,但我看见书上是这么写的:

Java code
public boolean xxsi (int a ,int b , int c)


我没弄明白,希望各位大牛指点一下,怎么用boolean写出来。还有,我总感觉,在set,get的if选择结构里面,钝角三角形好像比锐角三角形更有优先权。。。[/b][/size]

下面是我用set,get写的代码:

Java code


package cn.puruidong.accp_13;
/**
 * @author PuRuidong
 */
/*
 *根据三角形的三条边长,判断其是直角,钝角,还是锐角三角形.
 *通常set 和 get是属性的存取器,一般称getter/setter. set表示设置值,get表示获取值.
 *public String getName() {}
 *public void setName(String name) {}
 */
import java.util.Scanner;
public class Triangle {
    private double side1;//边长1
    private double side2;//边长2
    private double side3;//边长3
    
    private String TriangleType     ;//三角形类型
    
    public double getSide1(){ //使用get方法获取第一条边的值
        Scanner input = new Scanner (System.in);
        System.out.println("请输入第一条边(可包含小数):");
        side1 = input.nextDouble();
        return side1 ;
    }
    
    public void setSide1(double side1){ 
        this.side1=side1;
    }
    
    public double getSide2(){ //获取第二条边的值
        Scanner input = new Scanner (System.in);
        System.out.println("请输入第二条边(可包含小数):");
        side2 = input.nextDouble();
        return side2;
    }
    
    public void setSide2(double side2){ 
        this.side2 = side2 ;
    }
    
    public double getSide3(){ //获取第三条边的值
        Scanner input = new Scanner (System.in);
        System.out.println("请输入第三条边(可包含小数):");
        side3 = input.nextDouble();
        return side3;
    }
    
    public void setSide3 (double side3){
        this.side3 = side3 ;
    }
    
    public String getTriangleType (){ //使用get获取相应字符串,并输出结果
        return TriangleType ;
    }
     
    public void setTriangleType (String TriangleType){
        this.TriangleType = TriangleType ;
    }
    

    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        Triangle center = new Triangle ();//创建类
        String choose = "" ; //选择
        do {
            
            double sideto1 = center.getSide1();//调用输出
            double sideto2 = center.getSide2();//调用输出
            double sideto3 = center.getSide3();//调用输出
            if ( sideto1+sideto2<sideto3||sideto2+sideto3<sideto1||sideto1+sideto3<sideto2 ) { //判断,不能构成三角形,则直接退出循环
                center.setTriangleType("这不能构成三角形");//设置值
                System.out.println(center.getTriangleType());//输出值
                System.out.println("请问是否继续(y/n):");
                System.out.println("********************");
                choose = input.next();
                continue;
            }
              if ((sideto1*sideto1)==(sideto3+sideto2)||(sideto2*sideto2)==(sideto1+sideto3)||(sideto3*sideto3)==(sideto1+sideto2)){//输出直角三角形
                center.setTriangleType("这是一个直角三角形");//设置值
                System.out.println(center.getTriangleType());//输出值
            }  else if (sideto1==sideto2&&sideto2==sideto3){//输出等边三角形
                center.setTriangleType("这是一个等边三角形");
                System.out.println(center.getTriangleType());
            }
            else if (sideto1*sideto1>sideto3*sideto3+sideto2*sideto2||sideto2*sideto2>sideto1*sideto1+sideto3*sideto3||sideto3*sideto3>sideto1*sideto1+sideto2*sideto2){//输出钝角三角形
                center.setTriangleType("这是一个钝角三角形");
                System.out.println(center.getTriangleType());
            } else if (sideto1*sideto1+sideto2*sideto2>sideto3||sideto1*sideto1+sideto3*sideto3>sideto2||sideto3*sideto3+sideto2+sideto2>sideto1) {
                center.setTriangleType("这是一个锐角三角形");
                System.out.println(center.getTriangleType());
            }
        System.out.println("请问是否继续(y/n):");
        choose = input.next();
        System.out.println("********************");
    }while (!"n".equals(choose));
        System.out.println("程序退出,谢谢使用!");
}
}