编写程序,其中用户将圆的半径作为整数并打印圆的直径,周长和面积

时间:2018-05-22 22:46:49

标签: java

我写了这个程序,然而,我不知道我的错误在哪里。当我尝试在DOS上运行它时,我收到此错误:

  

Unit2Circle.java:26:错误:已经定义了变量半径   方法main(String [])int radius = input.nextDouble();             ^ Unit2Circle.java:26:错误:不兼容的类型:可能从double转换为int int radius = input.nextDouble();

这是我的代码:

import java.util.Scanner;

    public class Unit2Circle{  // class header

        public static void main(String[] args){ // main method header
            // To create a Scanner object
        Scanner input = new Scanner(System.in);

        // To declare variables, including radius, diameter, circumference and area
        double radius, diameter;
        double circumference, area;

        // To ask user to enter a number for the radius

        System.out.println("Please enter an integer: ");

        int radius =  input.nextDouble();

        diameter = 2*radius;
        circumference = 2*Math.PI*radius;
        area = Math.PI*radius*radius;

        // To print out diameter, circumference and area

        System.out.println("The diameter is " + diameter);
        System.out.println("The circumference is " + circumference);
        System.out.println("The area is " + area);



    } //end of main

}  // end of class

有人可以向我解释错误以及如何纠正错误吗?我想编写一个应用程序,用户将圆的半径作为整数输入,并使用π的浮点值3.14159打印圆的直径,周长和面积。保留3个浮动数字作为输出。

提前谢谢你!

4 个答案:

答案 0 :(得分:0)

您已使用相同的方法两次定义相同的变量,而不允许使用Java。

// To declare variables, including radius, diameter, circumference and area
double radius, diameter;                 // <<-- HERE
double circumference, area;

// To ask user to enter a number for the radius

System.out.println("Please enter an integer: ");

int radius =  input.nextDouble();        // <<-- HERE

可能最后一行应该只是radius = input.nextDouble();,而在开头没有单词int

答案 1 :(得分:0)

嗯,要做的第一件事是弄清楚你的错误在哪里。该错误消息显示问题发生在以下行:

int radius =  input.nextDouble();

此行有两个问题:首先,变量radius已在main方法中定义。回顾你的代码;你已经在程序的前面定义了radius,在这一行:

double radius, diameter;

您将radius定义为不是整数,而是双倍!

当您编写int radius时,您告诉编译器您要创建一个名为radius的新变量,它是一个整数,但您已经告诉它知道它何时看到radius要处理它是双重的。阅读您的代码,我认为此int是一个错误,您希望radius成为双倍。

这也是第二个错误的来源:input.nextDouble()返回一个double,并且您尝试将其存储到int中。因此,如果你摆脱int,你将解决这两个错误信息。

答案 2 :(得分:0)

你已经将变量radius声明为两倍,它应该是一次.let它是double的,所以其他值也可以输出double,因为pi包含浮点数。

答案 3 :(得分:-1)

您定义了半径两次,一次为double,一次为整数。当Java试图将radius定义为整数时,Java发现一个具有相同名称的变量已被定义为double并且它不喜欢它。