Java返回值不符合预期
我是新的Java程序员。我正在写一个简单的程序来计算矩形的面积。您可以输入矩形的宽度和高度,但问题是无论我输入什么值,面积值总是返回零。如何解决此问题。请看一下我的cde
import java.util.Scanner;
public class Shape {
private int area;
private int width;
private int length;
private String name;
public String shapeName() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter shape name: ");
String name = scanner.nextLine();
return name;
}
public int area() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter width: ");
String width = scanner.nextLine();
System.out.print("Enter height: ");
String height = scanner.nextLine();
return this.width * this.length;
}
}
public class Example1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape shape = new Shape();
System.out.println("Shape is " + shape.shapeName());
System.out.println("It's area is " + shape.area());
}
}
谢谢。。。祝你今天愉快!:)
# 1 楼答案
在这里,您将宽度放在两个局部变量中,并返回属性width和height的mul,这两个变量是不同的。试一试
# 2 楼答案
这会解决你的问题,兄弟
# 3 楼答案
您的问题是没有将输入分配给类变量:
但是对于您的方法,局部变量是
String width
和String length
因此
return this.width * this.length;
行将返回0
,因为this.width
和this.length
都没有更改,所以它们是0
,因为在Java中int
默认初始化为0
您应该将输入分配给类变量
注意:
使用
Scanner.nextInt()
获取int
值,而不是返回String
的Scanner.nextLine()
,否则应将这些字符串解析回int
# 4 楼答案
在课堂上做这样的动作
您需要使用这个关键字初始化全局变量宽度和长度
# 5 楼答案
将值赋给局部新变量意味着
这个。宽度和这个。未使用长度,因此返回0
# 6 楼答案
也可以使用此代码