Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中从方法返回值_Java_Methods - Fatal编程技术网

Java中从方法返回值

Java中从方法返回值,java,methods,Java,Methods,我应该制作一个只有两种方法的程序。一种方法从用户那里获取输入。另一种方法确定三角形是不等边三角形、等腰三角形还是等边三角形。然后我必须将结果作为字符串返回到原始方法,这是我遇到问题的部分。我没有老师,我只是在做一本小册子上的东西。任何帮助都将不胜感激 导入java.util.Scanner; 公共阶级三角{ 公共静态无效主字符串参数[]{ //长度输入 扫描仪1=新的ScannerSystem.in; 双边的; System.out.Printl输入侧一:; sideone=1.nextDoub

我应该制作一个只有两种方法的程序。一种方法从用户那里获取输入。另一种方法确定三角形是不等边三角形、等腰三角形还是等边三角形。然后我必须将结果作为字符串返回到原始方法,这是我遇到问题的部分。我没有老师,我只是在做一本小册子上的东西。任何帮助都将不胜感激

导入java.util.Scanner; 公共阶级三角{ 公共静态无效主字符串参数[]{ //长度输入 扫描仪1=新的ScannerSystem.in; 双边的; System.out.Printl输入侧一:; sideone=1.nextDouble; 扫描仪2=新的ScannerSystem.in; 两面派; System.out.printlnEnter第二面:; sidetwo=2.nextDouble; 扫描仪三=新的ScannerSystem.in; 两面派; System.out.printlnEnter第三面:; 三边=3.nextDouble; Sidesideone,sidetwo,sidetwo; } 静态空隙侧双面、双面、双面{ 如果sideone==sidetwo&&sideone==sidetwo{ System.out.PrintLn三角形是等边的; } 如果sideone==sidetwo | | sideone==sidetwree | | sidetwo==sidetwree { 三角形是等腰的; } 否则{ System.out.println三角形是不等边的; } 回来 } }
当前,您的方法被声明为返回void-即根本没有值。只需将其改为返回字符串:

有关更多信息,请在您学习Java的书中查找有关return的部分

请注意,在几乎所有情况下,比较双精度值以获得精确相等是一个坏主意。在这种特殊情况下可能没问题,因为您刚刚从字符串中转换了它们——但是如果您对它们执行了算术运算,通常比较它们是否在某个公差范围内相等会更好

还要注意的是,在代码的早期部分,不需要声明double变量,然后向用户写出一条消息。如果可以将声明和赋值结合起来,通常会使代码更清晰。同样,无需创建三个不同的扫描仪对象,每个对象都从标准输入读取:

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();
这里的公共代码可以进一步重构,但这只是一个开始

然后我必须将结果作为字符串返回到原始方法,这是我遇到问题的部分

您需要将方法的返回类型从void nothing更改为String,然后使用return返回结果:

static String sides(double sideone, double sidetwo, double sidethree){

    if ((sideone == sidetwo) && (sideone == sidethree)){
         return "The triangle is Equilateral";
    }
String theResult = sides(sideone, sidetwo, sidethree);
然后,您可以从main方法调用它以获得结果:

static String sides(double sideone, double sidetwo, double sidethree){

    if ((sideone == sidetwo) && (sideone == sidethree)){
         return "The triangle is Equilateral";
    }
String theResult = sides(sideone, sidetwo, sidethree);
通过将方法的返回类型从void更改为String,可以返回正在打印的字符串。 此外,您还可以通过仅创建一个用于读取所有输入的扫描仪对象来改进程序,而不是为每个输入创建一个扫描仪对象,如: 双边的; 两面派; 两面派

Scanner one = new Scanner(System.in);

System.out.println("Enter side one:");
sideone = one.nextDouble();


System.out.println("Enter side two:");
sidetwo = one.nextDouble();


System.out.println("Enter side three:");
sidethree = one.nextDouble();