首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

在自定义类里面使用boolean判断,该怎么处理

2012-05-27 
在自定义类里面使用boolean判断有这样一个题:根据三角形的三条边长,判断其是直角、钝角,还是锐角三角形。程

在自定义类里面使用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("程序退出,谢谢使用!");}} 



[解决办法]
Java code
import java.util.Scanner;public class Triangle {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        //三条边        int a = 0;        int b = 0;        int c = 0;        while (true) {            a = sc.nextInt();            b = sc.nextInt();            c = sc.nextInt();            //判断是否构成三角形,不能构成重新输入            if (isTriangle(a, b, c)) {                break;            } else {                System.out.println("输入的三边不能构成三角形,请重新输入!~");            }        }        //判断输出输入的三角形为什么三角形        showWhatTriangle(a,b,c);    }    /*     * 判断输入的三边是否能构成三角形     */    public static boolean isTriangle(int a, int b, int c) {        if (a > 0 && b > 0 && c > 0 && (a + b) > c && (a + c) > b                && (b + c) > a) {            return true;        }        return false;    }    /**     * 判断输入的三边构成是吗三角形     * @param a     * @param b     * @param c     */    public static void showWhatTriangle(int a, int b, int c) {        if(a*a == b+c || b*b == a+c || c*c == a+b){            System.out.println("直角三角形!~");        }        else if(a*a > b+c || b*b > a+c || c*c > a+b){            System.out.println("钝角三角形!~");        }else{            System.out.println("锐角三角形!~");        }    }}
[解决办法]
public boolean xxsi (int a ,int b , int c)这个方法应该就是判断是否是三角形的。
Java code
public boolean xxsi (int a ,int b , int c){if ( a+b<c||b+c<a||a+c<b ) { return true;    } else return false;
[解决办法]
1楼判断三角形是锐角直角钝角有错误
Java code
    public static void showWhatTriangle(int a, int b, int c) {        int a2 = a * a;        int b2 = b * b;        int c2 = c * c;        if(a2 == b2 + c2 || b2 == a2 + c2 || c2 == a2 + b2){            System.out.println("直角三角形!~");        } else if(a2 > b2 + c2 || b2 > a2 + c2 || c2 > a2 + b2){            System.out.println("钝角三角形!~");        } else {            System.out.println("锐角三角形!~");        }    } 

热点排行