在Rahmania的国家/地区,邮寄信件的费用是:对于30克以下的信件,邮资为40锡纳斯;对于30克以上和50克以下的信件,邮寄为55锡纳斯;对于50克至100克以下的信件,邮寄为70锡纳斯。每增加50克或不足50克,则增加25窦。编写一个程序,提示用户输入大量信息,然后给出邮寄具有该质量的信件的费用。
class Mail
{
public static void main (String args[])
{
System.out.println("What is the mass of you letter?");
int mass=In.getInt();
if(mass<30)
{
System.out.println("The cost for mailing your "+mass+"g would be 40 sinas.");
}
else if(mass>30&&mass<50)
{
System.out.println("The cost for mailing your "+mass+"g would be 55 sinas.");
}
else if(mass>50&&mass<100)
{
System.out.println("The cost for mailing your "+mass+"g would be 70 sinas.");
}
else
{
int changingMass=0;
mass=changingMass;
changingMass=changingMass-100;
changingMass=changingMass/50;
int totalSinas=changingMass*25+(70);
System.out.println("The cost for mailing your "+mass+"g would be "+totalSinas+" sinas.");
}
}
}
如果我输入200的质量,我会得到0g和20 sinas。为什么我什至尝试阅读代码,对我来说也很好。
我认为问题是changingMass = changingMass / 50;
最佳答案
您已初始化以下变量。
int changingMass=0;
然后,将其分配给所需的变量mass(这是用户输入)。这使得
mass=0
在下面。mass=changingMass;
然后,您将
0
用于所有计算,这是一个严重的错误。这就是为什么您在else子句中总是得到20窦的原因。changingMass=changingMass-100;
changingMass=changingMass/50;
int totalSinas=changingMass*25+(70);
不要修改用户输入
mass
。int changingMass=0;
//use the user input 'mass' for the first calculation of changingMass
changingMass=mass-100;
changingMass=changingMass/50;
int totalSinas=changingMass*25+(70);
希望你明白了。