出于某种原因,我的代码不断出现全部零: 这是我应该做的: 实验室分配A8.1 检查邮件
美国邮局有关于邮寄包裹的规定。如果
,则无法通过第一类邮寄包裹长度和周长的总和大于100英寸,或者如果包装重量超过70磅。
围长是围绕高度和宽度的周长,其中长度定义为最长
在
中编写一个程序,该程序包含包的重量和包的三个维度任何订单。程序应确定包装的最长尺寸,计算周长,
并计算框的大小。然后该程序应打印出以下消息之一
包太大太重了。
包太大了。
包太重了。
包裹可以接受。
以下是我所做的代码: //驱动程序代码
import java.util.Scanner;
public class CheckMailDriver {
static int myHeight;
static int myLength;
static int myWidth;
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("Enter Dimension 1. ");
int d1=input.nextInt();
System.out.println("Enter Dimension 2. ");
int d2=input.nextInt();
System.out.println("Enter Dimension 3. ");
int d3=input.nextInt();
System.out.println("Enter the weight of the package. ");
int weight=input.nextInt();
if ((d1>d2)&&(d1>d3)){
d1=myLength;
d2=myHeight;
d3=myWidth;
}
else
if ((d2>d1)&&(d2>d3)){
d2=myLength;
d1=myHeight;
d3=myWidth;
}
else
if ((d3>d1)&&(d3>d2)){
d3=myLength;
d1=myHeight;
d2=myWidth;
}
CheckMail mail=new CheckMail(myLength,myHeight,myWidth,weight);
System.out.println("The length of the package is "+myLength);
System.out.println("The height of the package is "+myHeight);
System.out.println("The width of the package is "+myWidth);
mail.calculateGirth();
mail.calculateValid();
input.close();
}
} //类代码
public class CheckMail {
int myHeight;
int myLength;
int myWidth;
int myWeight;
int mygirth;
public CheckMail(int d1, int d2, int d3, int wt){
d1=myLength;
d2=myHeight;
d3=myWidth;
wt=myWeight;
}
public void calculateGirth(){
int mygirth=(2*myHeight)+(2*myWidth);
System.out.println("The girth of the package is "+mygirth);
}
public void calculateValid(){
if ((mygirth+myLength>=100)&&(myWeight>=70)){
System.out.println("The package is too large and too heavy");
}
else
if ((mygirth+myLength>=100)){
System.out.println("The package is too large");
}
else
if ((myWidth>=70)){
System.out.print("The package is too heavy");
}
else
System.out.println("The package is fine");
}
}
以下是控制台中显示的内容:
输入尺寸1。 123
输入Dimension 2。 23
输入Dimension 3。 14
输入包裹的重量。 13
包裹的长度为0
包裹的高度为0
包的宽度为0
包装的周长是0
套餐很好
答案 0 :(得分:1)
反转CheckMail构造函数中的赋值;即改变
d1=myLength;
到
myLength=d1;
在Java中,赋值的变量位于等号的左侧,而分配给它的值位于右侧。
目前,您的代码只是使用类属性的初始值将参数重新分配给构造函数(构造函数是本地的)(零,因为在Java中,属性类型为int
的属性被初始化为零);类属性本身不会改变。