建立了一个方程类,对象是A,调用b和c 的值. 
 初学者,没办法  只有用这种效率低的做法了^...     
   if(A.getB()<0 && A.getC()<0) {
   System.out.println(A.getA()+"x*x" + A.getB()+ "x"+A.getC()+"=0");
}
   else if(A.getB()>0 && A.getC()>0) {
   System.out.println(A.getA()+"x*x" +"+"+ A.getB()+ "x"+"+"+A.getC()+"=0");
}
            else if(A.getB()>0 && A.getC()<0) {
   System.out.println(A.getA()+"x*x" +"+"+ A.getB()+ "x"+A.getC()+"=0");
}
   else  {
   System.out.println(A.getA()+"x*x" + A.getB()+ "x"+"+" + A.getC()+"=0");
}有什么简单的方法输出正确的方程啊? 主要是系数是正数时 前面要有个 "+" 号

解决方案 »

  1.   

    System.out.println(
    A.getA()+"x*x" + 
    (A.getB()<0?"":"+")+ A.getB()+
    "x"+
    (A.getC()<0?"":"+")+A.getC()+
    +"=0"
    );//上面是使用了三元运算符减少if语句,好像也可以使用String.format()方法来格式化,没有用过,就不贴了。
      

  2.   

    System.out.println(String.format("%dx*x + %+dx + %+d = 0",
     A.getA(), A.getB(), A.getC()));经测试,这样也是额可以的。
      

  3.   

    改一下方法的返回值··用switch case··
      

  4.   


    这里面的 %+dx 输出只能输出为正的吗?  如果为负  前面还会有那个 + 号没?另外再问个刚发现的小问题…
    我在定义方程类里的δ时 
    private int disc =(int) (Math.pow(b,2)-4*a*c);  可以正常通过;但将这个分开写就要报错了,这是为什么呢?
          private int disc;  //提示这行出错
    disc =(int) (Math.pow(b,2)-4*a*c); 
      
      

  5.   


    1.负数的时候前面有没有负号,我不说,你测试一下就知道了。
    2.你是不是这样写的:public class A{
       private int disc;                   //#1
       disc =(int) (Math.pow(b,2)-4*a*c);  //#2
      private int disc =(int) (Math.pow(b,2)-4*a*c);  //#3
      public void calc(){
      .....
     }
    }#1在类中定义了一个disc的私有成员变量,没有初始化没有错误;
    #2这是一行代码,不能在定义成员变量的时候编写;
    #3这样写是正确的,含义是在定义成员变量的时候就初始化;