我应该制作一个只有2种方法的程序.一种方法从用户获得输入.另一种方法确定三角形是Scalene Isosceles还是Equilateral.然后我必须将结果作为字符串返回到原始方法(这是我遇到问题的部分).我没有老师,我只是从小册子里做东西.任何帮助,将不胜感激.
import java.util.Scanner;
public class Triangle {
public static void main (String args[]){
// Input for lengths
Scanner one = new Scanner(System.in);
double sideone;
System.out.println("Enter side one:");
sideone = one.nextDouble();
Scanner two = new Scanner(System.in);
double sidetwo;
System.out.println("Enter side two:");
sidetwo = two.nextDouble();
Scanner three = new Scanner(System.in);
double sidethree;
System.out.println("Enter side three:");
sidethree = three.nextDouble();
sides(sideone, sidetwo, sidethree);
}
static void sides(double sideone, double sidetwo, double sidethree){
if ((sideone == sidetwo) && (sideone == sidethree)){
System.out.println("The triangle is Equilateral");
}
if (((sideone == sidetwo) || (sideone == sidethree) || (sidetwo == sidethree)))
{
System.out.println("The triangle is Isosceles");
}
else{
System.out.println("The triangle is Scalene");
}
return;
}
Run Code Online (Sandbox Code Playgroud)
}
目前您的方法被声明为返回void- 即根本没有值.只需将其更改为返回String:
static String sides(double side1, double side2, double side3) {
if (side1 == side2 && side1 == side3){
return "The triangle is Equilateral";
}
// etc
}
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请在您正在学习Java的书中查找有关"返回"的部分.
请注意,在几乎所有情况下,比较double完全相等的值是个坏主意.在这种特殊情况下可能没问题,因为你刚刚从字符串转换它们 - 但是如果你对它们进行了算术运算,那么在一定容差范围内比较它们通常会更好.
另请注意,在代码的早期部分,不需要声明double变量,然后向用户写出消息.如果你可以结合声明和赋值,它通常会使代码更清晰.同样,不需要创建三个不同的Scanner对象,每个对象都从标准输入读取:
Scanner input = new Scanner(System.in);
System.out.println("Enter side one:");
double side1 = input.nextDouble();
System.out.println("Enter side two:");
double side2 = input.nextDouble();
System.out.println("Enter side three:");
double side3 = input.nextDouble();
Run Code Online (Sandbox Code Playgroud)
(这里的常用代码可以进一步重构,但这是一个开始...)
| 归档时间: |
|
| 查看次数: |
688 次 |
| 最近记录: |