Java 二次方程式,无法找出语法错误
我正在做一项学校作业。我应该实现一个类并提供getSolution1和getSolution2方法。然而,我的代码有两个我无法解决的问题 问题#1在这一行:Java 二次方程式,无法找出语法错误,java,Java,我正在做一项学校作业。我应该实现一个类并提供getSolution1和getSolution2方法。然而,我的代码有两个我无法解决的问题 问题#1在这一行: solution1= ((-1*b)/> + Math.sqrt(Math.pow(b,2)-(4*a*c))); 编译器告诉我:标记“>”上出现语法错误,请删除此标记。我不知道我的语法是否有问题 问题2在输出线上: String quadEquation= "The quadratic equation is "+ a + Mat
solution1= ((-1*b)/> + Math.sqrt(Math.pow(b,2)-(4*a*c)));
编译器告诉我:标记“>”上出现语法错误,请删除此标记。我不知道我的语法是否有问题
问题2在输出线上:
String quadEquation= "The quadratic equation is "+ a + Math.pow(("x"),2) + " + " + b+"x"+ " + " + c+ " =0";
在Math.pow下,我得到一个错误:方法pow不适用于参数字符串
这是我的全部代码:
public class QuadraticEquation
{
double a;
double b;
double c;
double solution1;
double solution2;
QuadraticEquation (double a, double b, double c){
a= this.a;
b= this.b;
c= this.c;
}
public boolean hasSolution (){
if ((Math.pow(b,2))- (4*a*c)<0){
return false;
}
else
{
return true;
}
}
public double getSolution1 (double a, double b, double c)
{
if (hasSolution){
solution1= ((-1*b) + Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
return solution1;
}
}
public double getSolution2 (double a, double b, double c){
if (hasSolution){
solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
return solution2;
}
}
public String toString (double a, double b, double c){
String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0";
return quadEquation;
}
}
公共类求积方程
{
双a;
双b;
双c;
双溶液1;
双溶液2;
二次方程式(双a,双b,双c){
a=这个。a;
b=这个。b;
c=这个。c;
}
公共布尔解(){
如果((Math.pow(b,2))-(4*a*c)您的第一个问题是不能一起使用/>。这不是一个正确的操作。
第二个问题是因为Math.pow需要两个数字。其中有一个字符串。这就像试图获得单词apple的幂。你做不到。你必须首先将该字符串转换为int
Java中没有/>
这样的东西
String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0";
Math.pow需要数字,而您传递的是字符串“x”。符号“^”通常用于表示的是的幂,因此x^2是x的2的幂。我不认为有一个简单的解决方案可以在标准输出中写入上标
如果方程没有解,Java无法理解返回什么
public double getSolution2 (double a, double b, double c){
if (hasSolution){
solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
return solution2;
}
return -1; // or throw an exception.
}
返回-1将修复它。谢谢,当我进行更改时,它消除了错误。但是当我进行更改时,我意识到这行代码:public double getSolution1(double a,double b,double c,boolean hasSolution)不正确。它不会返回double值。因此我去掉了布尔hasSolution。但是现在我的语句if(hasSolution)是说没有初始化。@user2559274我不知道你说的是什么意思。返回一个double是完全合理的。为什么你认为那一行不正确。在问题中添加新代码,这样我就可以回答了。只需要几件事..if(hasSolution)就够了..不需要“==true”。此外,在方法中定义solution1和solution2,而不是在类中。您甚至不需要变量。只需执行返回((-1*b)/>-Math.sqrt(Math.pow(b,2)-(4*a*c)))谢谢你,现在我明白了,这似乎很明显。但有好几天我都没明白。我很感激你的解释+1的解释和诚实。
public double getSolution2 (double a, double b, double c){
if (hasSolution){
solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
return solution2;
}
return -1; // or throw an exception.
}