【发布时间】:2014-07-05 18:22:09
【问题描述】:
我正在尝试创建一个代码来设置三角形的三个边,然后计算三角形的周长、三角形的面积,并确定三角形是否钝角。我已经完成了所有的代码,并且没有错误出现。当我运行程序时,什么也没有发生。没有输出,我看不到我创建的任何方法中发生了什么。如果有人能帮我找出我哪里出错了,将不胜感激。
代码:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package triangle;
import java.lang.Math;
/**
*
* @author Dan
*/
public class Triangle
{
private double side1;
private double side2;
private double side3;
private double Area;
private double Perim;
/**
* Create Triangle object
* @param sideA for side one
* @param sideB for side two
* @param sideC for side three
*/
public Triangle(double sideA, double sideB, double sideC)
{
if (sideA >= 0 || sideB >= 0 || sideC >= 0)
System.exit(0);
else
side1 = sideA;
side2 = sideB;
side3 = sideC;
System.out.println("The chosen values for each side are:");
System.out.println("Side 1: " +side1);
System.out.println("Side 2: " +side2);
System.out.println("Side 3: " +side3);
System.out.println();
}
/**
* Create a method for calculating the perimeter
* of a triangle
*/
public double getPerimeter()
{
Perim = side1+side2+side3;
System.out.println("The perimeter of the triangle is: " +Perim);
System.out.println();
}
/**
* Create a method for calculating the area
* of a triangle
*/
public void getArea()
{
Area = Math.sqrt((Perim/2)*((Perim/2)-side1)*((Perim/2)-side2)*((Perim/2)-side3));
System.out.println("The Area of the triangle is: " +Area );
System.out.println();
}
/**Create a method to determine if a triangle is obtuse or not
*/
public void isObtuse()
{
/**
* determines if the square of two sides is less than the square of the remaining side
*/
if ((Math.pow(side1,2) + Math.pow(side2,2) < Math.pow(side3,2)) ||
(Math.pow(side3,2) + Math.pow(side1,2) < Math.pow(side2,2)) ||
(Math.pow(side3,2) + Math.pow(side2,2) < Math.pow(side1,2)))
System.out.println("The triangle is obtuse: 1");
else
System.out.println("The triangle is not obtuse: 0");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
Triangle tri = new Triangle(10,20,30);
System.out.println(tri.Perim);
System.out.println(tri.Area);
tri.isObtuse();
}
}
【问题讨论】:
-
你没有使用你创建的周长和面积的方法吗?
-
@TheDude 我希望他/她习惯于 C# 属性。
-
怎么没有编译错误,
double getPerimeter()没有返回任何东西。 -
您的方法名称与它们的行为不同步。
isObtuse和getAreareturn void,正如他们的名字所暗示的那样,返回布尔值和数值。