我写了这个程序,然而,我不知道我的错误在哪里。当我尝试在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个浮动数字作为输出。
提前谢谢你!
答案 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并且它不喜欢它。