java方法有问题,因为它给了我2次答案

java方法有问题,因为它给了我2次答案,java,Java,编写一个程序,向用户询问圆的半径,并计算和显示面积。程序应仅接受半径的非零正值,并在用户尝试输入零值或负值时显示错误消息。应使用main方法获取用户输入并将其传递给区域的方法circleArea 计算 方法circleArea应返回随后从中显示的区域 方法main通过print语句 工作: import java.util.Scanner; public class Question1 { public static double circleArea (double radius,doub

编写一个程序,向用户询问圆的半径,并计算和显示面积。程序应仅接受半径的非零正值,并在用户尝试输入零值或负值时显示错误消息。应使用main方法获取用户输入并将其传递给区域的方法circleArea 计算

方法circleArea应返回随后从中显示的区域 方法main通过print语句

工作:

import java.util.Scanner;

public class Question1 {

public static double circleArea (double radius,double area,double pi) {

    area=pi*radius*radius;

    if(radius<=0) {
        System.out.println("Error");
    }

    else {
        System.out.println("The area: "+area);
    }

    return area;
}

    public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    int r;
    final double p=3.142d;
    double ac = 0;


    System.out.println("Enter radius: ");
    r=input.nextInt();
    System.out.println("area: " +circleArea(r,p,ac));


    }
    }
import java.util.Scanner;
公开课问题1{
公共静态双回路A(双半径、双面积、双pi){
面积=圆周率*半径*半径;


if(radius它会打印两次结果,因为一次在circleArea()方法内部打印,然后在main()方法中再次打印。如果删除其中一个调用,它会正常工作

它会打印两次结果,因为一次在circleArea()方法内部打印,然后在main()中再次打印方法。如果删除其中一个调用,它应该可以正常工作

不,它不会。一旦在方法中打印结果,然后在主方法中打印它,在主方法中打印方法的返回值,它会打印两次,因为在代码中编写了两条输出语句:
System.out.println(“区域:“+area”)
System.out.println(“区域:+circleArea(r,p,ac));
您的else-part语句正在打印区域,您调用方法本身的方式是在print语句中。您的参数顺序错误:
(双半径,双区域,双pi)
(r,p,ac)
。我很惊讶你的代码输出了78.55,因为
ac
是0,并且你将其作为
pi
的值传递。但是我怎么能打印一次呢?不,不是。你在方法中打印一次结果,然后在主方法中打印,在主方法中打印方法的返回值,因为在你的代码中,它会打印两次您已经编写了两条输出语句:
System.out.println(“区域:+area”);
System.out.println(“区域:+circleArea(r,p,ac));
您的else部分语句正在打印区域,并且您调用方法本身的方式是在print语句中。您的参数顺序错误:
(双半径、双面积、双pi)
(r、p、ac)
。我很惊讶你的代码输出了78.55,因为
ac
是0,你将其作为
pi
的值传递。但是我怎么能打印它一次呢?你基本上只是重复两条注释已经重复的内容said@Stultuske:那可能没关系,因为那应该是一个答案。它确实回答了这个问题。@Stultuske,但是至少他给出了一个答案。你基本上只是在重复两个评论已经说过的内容said@Stultuske:那可能没关系,因为那应该是一个答案。它确实回答了这个问题。@Stultuske,但至少他给出了一个答案。