我正在尝试用Java制作一个面积计算器,它将根据用户给定的尺寸计算三角形的面积。我可以让用户从菜单中选择三角形选项并输入它们的尺寸,但是当我尝试使用方法来计算面积时,它只打印出0.0
。
{
Scanner tbaseChoice = new Scanner(System.in);
System.out.println("What is the base?");
double selectionb = tbaseChoice.nextDouble();
tbaseChoice.equals(Tbase);
Scanner theightChoice = new Scanner(System.in);
System.out.println("What is the height?");
double selectionh = theightChoice.nextDouble();
theightChoice.equals(Theight);
System.out.println("BASE:" + selectionb + " " + "HEIGHT:" + selectionh);
//tbaseChoice.equals(Tbase);
//theightChoice.equals(Theight);
}
public static void calculateArea() {
double triangleArea = Theight * Tbase;
System.out.print("Area=" + triangleArea);
}
答案 0 :(得分:2)
问题是您不应该使用equals
类的Scanner
方法为Theight
和Tbase
变量分配值。您应该改为使用=
赋值运算符来代替。所以用{/ p>替换theightChoice.equals(Theight);
Theight = selectionh;
和tbaseChoice.equals(Tbase);
与
Tbase = selectionb;
为什么您的代码之前没有工作,可以从此链接看到https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#equals(java.lang.Object)
equals
类中的Scanner
方法继承自Java的Object
类,它只返回一个布尔值。在之前的代码中,您正在检查Scanner
对象是否等于另一个对象,但是没有使用返回的布尔值。因此,您的Tbase
和Theight
变量并未发生变化。
答案 1 :(得分:0)
您可以尝试使用这些代码。也许这会对你有所帮助
public class AreaCalculator {
static double base=0.0;
static double height=0.0;
public static void main(String args[]){
//Scanner object for input
Scanner scanner=new Scanner(System.in);
System.out.println("What is the base?");
base=scanner.nextDouble();
System.out.println("What is the height?");
height=scanner.nextDouble();
System.out.println("BASE:" + base + " " + "HEIGHT:" + height);
System.out.println("Area is: "+triangleArea());
}
public static double triangleArea(){
return (.5*base*height);
}
}