Java 什么';我的代码怎么了?为什么不能正确计算圆的面积?

Java 什么';我的代码怎么了?为什么不能正确计算圆的面积?,java,area,Java,Area,我的代码怎么了?为什么不计算 如果圆是一种形状,是否正确旋转?每次都是 计算圆的面积等于0。其余代码正在运行 好的 我的代码怎么了?为什么不计算 如果圆是一种形状,是否正确旋转?每次都是 计算圆的面积等于0。其余代码正在运行 好的 问题在于输入类中的这段代码: if(type.equals("circle")) {float c_area; c_area=3.14f*side1*side1; } 如果将其设置为局部变量而不是实例变量,则在

我的代码怎么了?为什么不计算 如果圆是一种形状,是否正确旋转?每次都是 计算圆的面积等于0。其余代码正在运行 好的

我的代码怎么了?为什么不计算 如果圆是一种形状,是否正确旋转?每次都是 计算圆的面积等于0。其余代码正在运行 好的


问题在于输入类中的这段代码:

if(type.equals("circle"))
        {float c_area;
            c_area=3.14f*side1*side1;
        }
如果将其设置为局部变量而不是实例变量,则在内部声明c_区域,请尝试以下操作

if(type.equals("circle"))
        {
            this.c_area=3.14f*side1*side1;
        }
希望能有所帮助。

请看以下两行:

float c_区域;
c_面积=3.14f*side1*side1

当在类范围声明中已经有一个以相同方式命名的变量时,您正在构造函数中声明一个名为
c\u area
的变量。因此编译器忽略类级变量,而计算构造函数级变量。当然,类级别变量不会更改,默认情况下保持为零。只需移除
float c_区域来自构造函数,你很好


注意:如果您是Java新手,您应该知道它遵循某些代码约定。你应该用大写的样式来命名你的类,并且你的变量名应该是大写的。首先,你最好使用“Math.PI”,只取3.14f,这样更准确

在我的建议中,您应该使用静态方法来计算“c_面积”(使用参数(半径、类型)和IMediety返回该值)。 我不认为需要创建对象以便删除构造函数(因为以后不需要使用该对象)



如果这是你的全部代码,我个人会创建一个计算面积的方法,并且不要使用其他类,他的程序非常好,没有编码错误

唯一的问题是在空白区域(字符串选择){}方法中有输入错误

if(select.equals(“cirlce”)
应该是
if(select.equals(“circle”)


圆圈拼写错误。

欢迎来到Stack Overflow!您在问题中发布了许多代码,这使我们(以及未来的读者)不清楚问题的确切位置。请将问题代码减少到10行或更少。请参阅:和。我的猜测:您已创建了两个变量
c_区域;
local and instance one。删除local one。您将区域值设置为local c_区域,但打印仍然为0(默认)类输入的实例1{float c_area;int s_area,r_area;input(int side1,String type){if(type.equals(“圆”){c_area=3.14fside1*side1;}否则{s_area=side1*side1;}input(int l,int b){r_area lb;}它仍然没有给出正确的答案。仍然是零。if(select.equals(“cirlce”):输入类的area方法中的圆圈拼写错误。这就是问题所在。希望它能解决它。谢谢!编码愉快!
if(type.equals("circle"))
        {
            this.c_area=3.14f*side1*side1;
        }